tkinter 中 event.x、event.y 和 event.x_root、event.y_root 之间有什么区别?

what is the difference between event.x,event.y and event.x_root,event.y_root in tkinter?

import tkinter as tk
from tkinter import ttk
win=tk.Tk()
def get_event(event):
     print(f"{event.x} {event.y}")
win.bind("<Button-3>",get_event)
win.mainloop()

我在 tkinter 中制作右键单击菜单但是当我写 event.x 和 event.y:

import tkinter as tk
from tkinter import ttk
win=tk.Tk()
menu=tk.Menu(win,tearoff=False)
menu.add_command(label="Nothing...")
def popup(event):
     menu.tk_popup(event.x,event.y)
win.bind("<Button-3>",popup)
win.mainloop()

菜单溢出 window 但是当我在 menu.tk_popup 中写入 event.x_root 和 event.y_root 时,它不会

当你使用event中的xy属性时,它指的是鼠标在事件发生时的x/y坐标,相对于小部件.

左上角

但是当你从event使用x_rooty_root时,它指的是事件发生时鼠标的x/y坐标,相对于屏幕左上角.