2011-05-02 36 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

相關問題