Tkinter:确定小部件相对于根窗口的位置

3

tkinter的MouseWheel事件只能绑定到根窗口,因此事件位置也相对于根位置。 在画布缩放操作中,我想获得带有画布内光标位置信息的MouseWheel事件。为了计算这个,我以为我只需减去画布在根窗口中的位置。问题是,我无法找到窗口中画布的位置。

我尝试过: can.grid_bbox --> (0,0,0,0) ? can.grid_info can.grid_location cget("offset") pointerx

还有其他一些我记不清了。不知怎么地,我总是忽视它,有人能给我一个提示吗?

---编辑--- 要获取与画布相关的mouseWheel事件位置,似乎可以采用这种方法:

def on_mouse_wheel(self, event):
    xCan = event.x_root - self.can.winfo_rootx()
    yCan = event.y_root - self.can.winfo_rooty()
1个回答

3

1
它通过循环遍历所有嵌套框架直到根节点(通过x.master直到.master==None)来实现。我不喜欢这种方法,最终我找到了另一个解决方案(请参见上面的编辑)。不过还是感谢您让我再次找到正确的方向。 - Gonzo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接