如何将参数传递给Tkinter按钮的回调命令?
我有两个按钮,分别叫做“ButtonA”和“ButtonB”。
我希望程序在点击任意一个按钮时,能打印出“hello, ButtonA”和“hello, ButtonB”。
我的代码如下:
def sayHi(name):
print 'hello,', name
root = Tk()
btna = Button(root, text = 'ButtonA', command = lambda: text)
btna.pack()
但是当我点击ButtonA时,出现了一个错误,提示text not defined
。
我明白这个错误的意思,但我该怎么把ButtonA的文本传给lambda呢?
2 个回答
3
在你的情况中,text 不是一个函数。你只需要这样写:
value = 'ButtonA'
btna = Button(root, text = value, command = lambda: sayHi(value))
这样就能正常工作了。
29
这个应该可以正常运行:
...
btnaText='ButtonA'
btna = Button(root, text = btnaText, command = lambda: sayHi(btnaText))
btna.pack()
想了解更多信息,可以看看 Tkinter 回调函数