用普通函数作为媒介,使用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("
" ) -
- 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("
" , menuEvent) -
- base.mainloop()
-
作者:周华
创作日期:2023/11/10