Tkinter:确定小部件相对于根窗口的位置
在tkinter中,鼠标滚轮事件只能绑定到根窗口上。因此,这个事件的位置也是相对于根窗口的位置。
对于一个画布的缩放操作,我想获取鼠标滚轮事件时光标在画布上的位置。为了计算这个位置,我想直接减去画布在根窗口中的位置。现在的问题是,我找不到画布在窗口中的位置。
我尝试了:
can.grid_bbox --> (0,0,0,0) ?
can.grid_info
can.grid_location
cget("offset")
pointerx
还有一些我记不起来的其他方法。总是找不到,能不能给我一点提示?
---编辑---
为了获取鼠标滚轮事件相对于画布的位置,这个方法似乎有效:
def on_mouse_wheel(self, event):
xCan = event.x_root - self.can.winfo_rootx()
yCan = event.y_root - self.can.winfo_rooty()