我需要的是将函数附加到使用参数调用的按钮。但是,当我编写如下代码时,代码在创建按钮时执行一次,然后不再执行。此外,当我将函数声明为按钮的属性时,如果我删除参数和括号,代码工作正常。如何仅在按下按钮时才能使用参数调用该函数?
from Tkinter import *
root =Tk()
def function(parameter):
print parameter
button = Button(root, text="Button", function=function('Test'))
button.pack()
root.mainloop()
答案 0 :(得分:0)
解决方案是将函数作为lambda传递:
from Tkinter import *
root =Tk()
def callback(parameter):
print parameter
button = Button(root, text="Button", command=lambda: callback(1))
button.pack()
root.mainloop()
另外,正如@nbro已经正确指出的那样,button属性是命令,而不是函数。