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
中的x
和y
属性时,它指的是鼠标在事件发生时的x/y坐标,相对于小部件.
左上角
但是当你从event
使用x_root
和y_root
时,它指的是事件发生时鼠标的x/y坐标,相对于屏幕左上角.
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
中的x
和y
属性时,它指的是鼠标在事件发生时的x/y坐标,相对于小部件.
但是当你从event
使用x_root
和y_root
时,它指的是事件发生时鼠标的x/y坐标,相对于屏幕左上角.