我有一个使用此代码创建的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..
当我编译并运行时,每个command
函数的subMenu.add_command()
属性中的代码正在立即执行。我想点击菜单项时实现这一点。我该怎么做?
答案 0 :(得分:1)
把它们放在lambda中。这将使表达式变为callables,耐心地等待事件在执行之前发生。
subMenu.add_command(label = "Amersfoort", command = lambda: print('test'))
subMenu.add_separator()
subMenu.add_command(label = "Amsterdam Centraal", command = lambda: print('test2'))