How can I pass arguments to Tkinter button's c

2019-01-15 07:52发布

I got 2 buttons, respectively named 'ButtonA', 'ButtonB'. I want the program to print 'hello, ButtonA' and 'hello, ButtonB' if any button is clicked. My code is as follows:

def sayHi(name):
    print 'hello,', name

root = Tk()
btna = Button(root, text = 'ButtonA', command = lambda: text)
btna.pack()

When I click ButtonA, error occurs, text not defined.

I understand this error, but how can I pass ButtonA's text to lambda?

2条回答
老娘就宠你
2楼-- · 2019-01-15 08:08

text is not a function in your case. Just have it as:

value = 'ButtonA'
btna = Button(root, text = value, command = lambda: sayHi(value))

And you will get that working.

查看更多
ゆ 、 Hurt°
3楼-- · 2019-01-15 08:22

This should work:

...
btnaText='ButtonA'
btna = Button(root, text = btnaText, command = lambda: sayHi(btnaText))
btna.pack()

For more information take a look at Tkinter Callbacks

查看更多
登录 后发表回答