定义Tkinter Python中下拉列表的按钮按钮

问题描述:

我使用Python Tkinter中的Menubutton创建了一个下拉列表,但我无法检测到哪个按钮被按下('button-1','button-2'或'按钮-3')的字符串定义Tkinter Python中下拉列表的按钮按钮

contentMenu.add_command(label=btn, command=???) 

​​

我应该使用什么为 “命令=”,以限定特定按钮?谢谢!

你在找什么是拉姆达。您可以在命令调用中使用的λ像这样:

contentMenu.add_command(label=btn, command = lambda btn=btn: buttonClicked(btn)) 

然后创建一个名为buttonClicked方法,这将需要一个参数,它会反映已按下哪个按钮。这里是什么看起来像一个小例子:

def buttonClicked(btn): 
    print btn 

理想但如果每个按钮都有一套完全不同的执行指令,则它们应分别获得自己的方法,也许你改变列表中的元组(名称,方法)。这通常是为什么你会使用menubutton而不是optionmenu的情况。如果你只是为所有人调用相同的方法,那么你可能会考虑切换到一个选项菜单。