我有2个按钮,分别命名为'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?
答案 0 :(得分:23)
这应该有效:
...
btnaText='ButtonA'
btna = Button(root, text = btnaText, command = lambda: sayHi(btnaText))
btna.pack()
有关详细信息,请查看Tkinter Callbacks
答案 1 :(得分:3)
文本不是一个函数。只需将其作为:
value = 'ButtonA'
btna = Button(root, text = value, command = lambda: sayHi(value))
你会得到这个。