Python 带有点击事件的 Tinter 下拉菜单命令
Python Tinter dropdown menu command with click event
我有一个使用此代码创建的 TKinter 下拉菜单:
#menu
menu = Menu(window)
window.config(menu = menu)
subMenu = Menu(menu)
menu.add_cascade(label = "Kies een ander station", menu = subMenu)
subMenu.add_command(label = "Amersfoort", command = print('test'))
subMenu.add_separator()
subMenu.add_command(label = "Amsterdam Centraal", command = print('test2'))
subMenu.add_separator()
#etc..
当我编译和运行时,每个subMenu.add_command()
函数的command
属性中的代码立即被执行。我想在单击菜单项时实现此目的。我该怎么做?
将它们放入 lambda 表达式中。这将使表达式成为可调用对象,在执行之前耐心等待事件发生。
subMenu.add_command(label = "Amersfoort", command = lambda: print('test'))
subMenu.add_separator()
subMenu.add_command(label = "Amsterdam Centraal", command = lambda: print('test2'))
我有一个使用此代码创建的 TKinter 下拉菜单:
#menu
menu = Menu(window)
window.config(menu = menu)
subMenu = Menu(menu)
menu.add_cascade(label = "Kies een ander station", menu = subMenu)
subMenu.add_command(label = "Amersfoort", command = print('test'))
subMenu.add_separator()
subMenu.add_command(label = "Amsterdam Centraal", command = print('test2'))
subMenu.add_separator()
#etc..
当我编译和运行时,每个subMenu.add_command()
函数的command
属性中的代码立即被执行。我想在单击菜单项时实现此目的。我该怎么做?
将它们放入 lambda 表达式中。这将使表达式成为可调用对象,在执行之前耐心等待事件发生。
subMenu.add_command(label = "Amersfoort", command = lambda: print('test'))
subMenu.add_separator()
subMenu.add_command(label = "Amsterdam Centraal", command = lambda: print('test2'))