-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的部分内容)。 –