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

5 投票
2 回答
10101 浏览
提问于 2025-04-16 01:33

我需要获取鼠标在tkinter窗口中的位置。

2 个回答

3

获取鼠标移动事件的屏幕坐标(xy_root),然后减去窗口的屏幕坐标(window.winfo_rootx()y())。

6

一般来说,你不需要自己去“获取”这些信息,因为它们已经包含在事件对象里,事件对象会在发生事件时传递给你。你通常只在处理事件的时候需要这些信息,而事件本身就会提供给你。

简单来说,要获取这些信息,你只需要从事件对象中提取出来就可以了。

下面是一个例子:

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()

撰写回答