Tkinter: determinar la posición del widget en relación con la ventana raíz

El evento tkinter MouseWheel solo se puede vincular a la ventana raíz. Por lo tanto, la posición del evento también es relativa a la posición raíz. Para una operación de zoom de canvas, me gustaría obtener el evento MouseWheel con información sobre la posición del cursor dentro del canvas. Para calcular esto, pensé que simplemente restaría la posición del canvas dentro de la ventana raíz. El problema ahora es que no puedo encontrar la posición del canvas en la ventana.

Intenté: can.grid_bbox -> (0,0,0,0)? can.grid_info can.grid_location cget (“offset”) pointerx

y algunos otros que no puedo recordar. De alguna manera me sigo perdiendo, ¿podría alguien darme una pista?

— editar — Para obtener la posición del evento mouseWheel en relación con el canvas, este enfoque parece funcionar:

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

Desea utilizar los métodos winfo_x y winfo_y para obtener la posición x / y relativa al padre.