Событие tkinter MouseWheel может быть привязано только к корневому окну. Таким образом, позиция события также относительно корневой позиции.
Для операции масштабирования холста я хотел бы получить событие MouseWheel с информацией о позиции курсора в пределах холста. Чтобы рассчитать это, я подумал, что просто вычту положение холста в корневом окне. Проблема сейчас в том, что я не могу узнать положение холста в окне.
Я пытался:
can.grid_bbox -> (0,0,0,0)?
can.grid_info
can.grid_location
cget ( "смещение")
pointerx
и некоторые другие, которые я не помню. Каким-то образом я продолжаю скучать по нему, кто-то может дать мне подсказку?
--- редактировать ---
Чтобы получить позицию события mouseWheel относительно холста, кажется, что этот подход работает:
def on_mouse_wheel(self, event):
xCan = event.x_root - self.can.winfo_rootx()
yCan = event.y_root - self.can.winfo_rooty()