Python 如何获取tkinter中相对于父窗口小部件的鼠标位置?
我需要得到鼠标相对于tkinter窗口的位置 获取鼠标移动事件的屏幕坐标(Python 如何获取tkinter中相对于父窗口小部件的鼠标位置?,python,tkinter,mouse-position,Python,Tkinter,Mouse Position,我需要得到鼠标相对于tkinter窗口的位置 获取鼠标移动事件的屏幕坐标(x/y\u root)并减去窗口的屏幕坐标(window.winfo\u rootx()/y())。一般来说,您不需要“获取”此信息,因为它是作为传入的事件对象的一部分提供给您的。您可能只在响应事件时需要此信息,而事件会提供此信息 简而言之,要获取信息,只需从事件对象检索信息 下面是一个例子: import Tkinter class App: def __init__(self, root):
x
/y\u root
)并减去窗口的屏幕坐标(window.winfo\u rootx()
/y()
)。一般来说,您不需要“获取”此信息,因为它是作为传入的事件对象的一部分提供给您的。您可能只在响应事件时需要此信息,而事件会提供此信息
简而言之,要获取信息,只需从事件对象检索信息
下面是一个例子:
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()
导入Tkinter
类应用程序:
定义初始化(自,根):
f=Tkinter.Frame(宽度=100,高度=100,背景=“bisque”)
f、 包装(padx=100,pady=100)
f、 绑定(“,self.OnMouseDown)
def OnMouseDown(自身、事件):
打印“帧坐标:%s/%s”%(event.x,event.y)
打印“根坐标:%s/%s”%(event.x\u root,event.y\u root)
root=Tkinter.Tk()
app=app(根目录)
root.mainloop()
我不同意您通常不需要这些信息。我现在正在写一个快速应用程序来编辑照片…我绝对需要鼠标点击的相对位置,而不是绝对位置,因为它的位置相对于显示的图像,而不是相对于屏幕,这很重要。我确信你的位置通常是正确的,但是相对位置有合法的用途,有很多合法的用途。@sunny:但你不是只在处理事件时才需要这些信息吗?这些信息绝对有用,只是你通常不需要获取它,因为它是在事件处理程序中提供给你的。是的,所以我们同意这些信息是有用的?我以为你说这不是有用的信息。@sunny:我从来没有说过你不需要这些信息,我说你不需要得到这些信息。这些信息确实很有用,但它是传入的事件对象的一部分,因此您不需要查询tkinter以获取信息,因为您已经拥有了这些信息。您是对的。我错过了你所说的细微差别。