用普通函数作为媒介,使用event_generate()
方法模拟触发bind()
事件来创建一个模拟的event对象,并将其传递给绑定的事件处理函数。
运行结果
示例代码
import tkinter as tk# 菜单事件
def menuEvent(event):print(event.x, event.y)label.config(text=f'鼠标在屏幕上的坐标\n{event.x} {event.y}')# 普通函数
def func(string):if string == '新建':base.event_generate("<Control-Key-n>")base= tk.Tk()# 创建菜单栏
menubar = tk.Menu(base)
base.config(menu=menubar)# 创建二级菜单
fileMenu = tk.Menu(menubar, tearoff=0)
menubar.add_cascade(label='文件', menu=fileMenu)# 二级菜单添加选项
fileMenu.add_command(label='新建', accelerator='Ctrl+N', command=lambda: func('新建'))label = tk.Label(base)
label.pack()# 捆绑菜单事件
base.bind("<Control-Key-n>", menuEvent)base.mainloop()
作者:周华
创作日期:2023/11/10