如何相对于tkinter中的父窗口小部件获取鼠标位置?

时间:2010-07-20 08:05:41

标签: python tkinter mouse-position

我需要相对于tkinter窗口获取鼠标位置。

2 个答案:

答案 0 :(得分:5)

一般来说,您永远不需要“获取”此信息,因为它是作为传入的事件对象的一部分提供给您的。您可能只需要在响应事件时需要此信息,并且事件为您提供此信息信息。

更简洁地说,获取您只需从事件对象中检索它的信息。

以下是一个例子:

import Tkinter

class App:
    def __init__(self, root):
        f = Tkinter.Frame(width=100, height=100, background="bisque")
        f.pack(padx=100, pady=100)
        f.bind("<1>", self.OnMouseDown)

    def OnMouseDown(self, event):
        print "frame coordinates: %s/%s" % (event.x, event.y)
        print "root coordinates: %s/%s" % (event.x_root, event.y_root)

root=Tkinter.Tk()
app = App(root)
root.mainloop()

答案 1 :(得分:2)

获取鼠标移动事件的屏幕坐标(x / y_root)并减去窗口的屏幕坐标(window.winfo_rootx() / y())。