2014-09-03 127 views
-1

我使用Python Tkinter中的Menubutton創建了一個下拉列表,但我無法檢測到哪個按鈕被按下('button-1','button-2'或'按鈕-3')的字符串定義Tkinter Python中下拉列表的按鈕按鈕

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

​​

我應該使用什麼爲 「命令=」,以限定特定按鈕?謝謝!

回答

1

你在找什麼是拉姆達。您可以在命令調用中使用的λ像這樣:

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

然後創建一個名爲buttonClicked方法,這將需要一個參數,它會反映已按下哪個按鈕。這裏是什麼看起來像一個小例子:

def buttonClicked(btn): 
    print btn 

理想但如果每個按鈕都有一套完全不同的執行指令,則它們應分別獲得自己的方法,也許你改變列表中的元組(名稱,方法)。這通常是爲什麼你會使用menubutton而不是optionmenu的情況。如果你只是爲所有人調用相同的方法,那麼你可能會考慮切換到一個選項菜單。