附加到Button的Tkinter功能立即执行

时间:2016-06-18 22:08:50

标签: python button tkinter

我需要的是将函数附加到使用参数调用的按钮。但是,当我编写如下代码时,代码在创建按钮时执行一次,然后不再执行。此外,当我将函数声明为按钮的属性时,如果我删除参数和括号,代码工作正常。如何仅在按下按钮时才能使用参数调用该函数?

from Tkinter import *

root =Tk()

def function(parameter):
    print parameter

button = Button(root, text="Button", function=function('Test'))
button.pack()

root.mainloop()

1 个答案:

答案 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属性是命令,而不是函数。