-1
所以我的工作,AGAIN代碼在This Question ...
所以我想知道如何去這樣做:如何防止Tkinter的按鈕,命令立即從執行程序運行
from tkinter import *
from tkinter import messagebox as mb
# ...
def info(text):
mb.showinfo(text)
# ...
helpmenu.add_command(label="Version", command=info("Not yet realesed"))
# ...
它所做的是自動執行info()
。
我該如何防止這種情況?
我將補充回答:假設'add_command'方法的指令的說法是,這將是一個功能要求採取特定行動。當你寫'command = info(「Not yet realesed」)時,你不會傳遞函數,而是調用函數作爲參數的結果。這是問題的實質。解決的方法是用lambda函數(如由@Khristos完成)封裝「info(」Not yet realesed「)」的調用,或者使用'functools'中的'partial'來創建帶有'bound'參數的函數。 – Grigoriy
他應該不需要使用lambda表達式,他應該能夠將函數直接傳遞給參數,如grigoriy所述(使用functools的部分內容)。 –