Python3 tkinter基础 Frame event.x 输出鼠标左右键点击的位置

294 阅读2分钟
  •        Python : 3.8.11
  •          OS : Ubuntu Kylin 20.04
  •       Conda : 4.10.1
  •     PyCharm : 2021.1.3 (Community Edition)

代码

"""
@Author : 行初心
@Date   : 8/6/21
"""

from tkinter import *


def call_back_left(event):
    print("相对于应用程序左上角的位置,左键点击的位置是", event.x, event.y)
    print("相对于屏幕左上角的位置,左键点击的位置是", event.x_root, event.y_root)


def call_back_right(event):
    print("右键点击的位置是", event.x, event.y)
    print("右键点击的位置是", event.x_root, event.y_root)


def main():
    root = Tk()

    # 创建一个框架,在这个框架中响应事件
    frame = Frame(root, width=200, height=200)

    # bind进行绑定  Button指的是鼠标的点击事件
    # 事件本身 - 事件的详细描述
    # 1 左键
    # 3 右键
    frame.bind("<Button-1>", call_back_left)
    frame.bind("<Button-3>", call_back_right)
    frame.pack()

    mainloop()


if __name__ == '__main__':
    main()


运行结果

framebindmouseclick.png

/home/coder/anaconda3/envs/py38/bin/python /home/coder/PycharmProjects/pythonProject1/main.py
相对于应用程序左上角的位置,左键点击的位置是 58 36
相对于屏幕左上角的位置,左键点击的位置是 378 611
相对于应用程序左上角的位置,左键点击的位置是 149 139
相对于屏幕左上角的位置,左键点击的位置是 469 714

Process finished with exit code 0


参考资料

学习推荐


Python具有开源、跨平台、解释型和交互式等特性,值得学习。
Python的设计哲学:优雅,明确,简单。提倡用一种方法,最好是只有一种方法来做一件事。
GUI可以选择PyQt5、PySide2、wxPython、PyGObject、wxWidgets等进行创作。
代码的书写要遵守规范,这样有助于沟通和理解。
每种语言都有独特的思想,初学者需要转变思维、踏实践行、坚持积累。