开发者

How can I pass arguments to Tkinter button's callback command?

开发者 https://www.devze.com 2023-03-24 15:53 出处:网络
I got 2 buttons, respectively named \'ButtonA\', \'Bu开发者_如何学PythonttonB\'. I want the program to print \'hello, ButtonA\' and \'hello, ButtonB\' if any button is clicked.

I got 2 buttons, respectively named 'ButtonA', 'Bu开发者_如何学PythonttonB'. 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?


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


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.

0

精彩评论

暂无评论...
验证码 换一张
取 消