【发布时间】:2016-07-18 04:26:59
【问题描述】:
所以我有一个来自我的主管的代码,我在理解上遇到了问题。我希望在我的光标所在的位置绘制一个矩形,使用create_rectangle 方法,我为其提供参数/坐标:
rect = create_rectangle(x, y, x + 10, y + 10, fill = 'blue', width = 0)
我希望这里的 x 和 y 是我的光标相对于我的根窗口的当前坐标。
在将x 和y 传递给此函数之前,在我的代码中计算它们的方式是:
x = root.winfo_pointerx() - root.winfo_rootx()
y = root.winfo_pointery() - root.winfo_rooty()
我这辈子都无法理解为什么会这样。我试着做只是
x = root.winfo_pointerx()
y = root.winfo_pointery()
也只是
x = root.winfo_rootx()
y = root.winfo_rooty()
但是这些都没有绘制光标所在的矩形。我也尝试查看文档,但无法真正理解发生了什么。
那么为什么x = root.winfo_pointerx() - root.winfo_rootx() 和y = root.winfo_pointery() - root.winfo_rooty() 在这里完成?
【问题讨论】:
-
winfo_pointer()= 光标在屏幕上的位置。winfo_root()= 窗口在屏幕上的位置。winfo_pointer()-winfo_root()= 光标在窗口中的位置。
标签: python canvas tkinter tkinter-canvas