【问题标题】:how do I get mouse position while pressing a button in tkinter?在 tkinter 中按下按钮时如何获取鼠标位置?
【发布时间】:2019-03-29 12:26:48
【问题描述】:

我试图在按下按钮时获取鼠标位置,但不是获取鼠标在 Tkinter 根目录上的位置,而是为我提供了鼠标在按钮上的位置。例如,如果按钮放在 200、200 上,并且我按下按钮的左上角,它会打印 0、0 而不是 200、200。

import Tkinter as tk

def leftclick(event):
    print("left")
    x, y = event.x, event.y
    print('{}, {}'.format(x, y))

root = tk.Tk()
add_user = tk.Button(root, height=63, width=195 ,text="sign up a user")
add_user.place(x= 20, y = 30)
root.bind("<Button-1>", leftclick)
root.mainloop()

【问题讨论】:

  • 什么意思?
  • 我添加了一个最小的代码来显示我如何获得鼠标的位置
  • 定义中缺少(event)
  • 谢谢,当然我已经编码了。忘记在这里输入了。
  • 错误必须在其他地方。当我使用 leftclick 时,就像您发布的一样,只需在末尾添加 print(x, y),并创建一个带有按钮的简单窗口,它会打印窗口坐标,而不是按钮坐标。

标签: python button tkinter


【解决方案1】:

您可以调用小部件的winfo_pointerxwinfo_pointery 方法来获取每个单独的坐标,或者您可以调用winfo_pointerxy 来获取它们:

def leftclick(event):
    x, y = event.widget.winfo_pointerxy()
    print('{}, {}'.format(x, y))

【讨论】:

    猜你喜欢
    • 2021-01-05
    • 1970-01-01
    • 1970-01-01
    • 2022-12-04
    • 2019-05-09
    • 2011-12-06
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    相关资源
    最近更新 更多