2011-05-02 78 views
1

tkinter MouseWheel事件只能绑定到根窗口。因此,事件的位置也是相对于根位置。 对于一个画布缩放操作,我想用MouseWheel事件来获取关于画布内光标位置的信息。为了计算这个,我想我会简单地在根窗口中减去画布的位置。现在的问题是,我无法找到窗口中的画布位置。我试过: can.grid_bbox - >(0,0,0,0)? can.grid_info can.grid_location cget( “偏移”) pointerxTkinter:确定相对于根窗口的Widget位置

和其他一些我不记得了。不知何故,我一直想念它可以给我一个提示?

---编辑--- 要获得鼠标滚轮事件相对于画布上的位置,这种做法似乎工作:

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

回答

3

您想使用winfo_x and winfo_y方法来获取X/y相对于父母的位置。

+0

它通过循环遍历所有封闭帧到根(通过x.master直到.master ==无)。我不喜欢这种方法,最后我找到了另一种解决方案(请参阅上面的编辑)。谢谢你,让我再次走上正轨。 – Gonzo 2011-05-03 18:33:13