如何将参数传递给 Tkinter 按钮的回调命令?

发布于 2024-11-27 12:33:40 字数 343 浏览 1 评论 0原文

我有 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时,发生错误,文本未定义

我理解这个错误,但是如何将 ButtonA 的文本传递给 lambda?

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

是伱的 2024-12-04 12:33:40

这应该有效:

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

有关更多信息,请查看 Tkinter Callbacks

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

你在我安 2024-12-04 12:33:40

在您的情况下,文本不是一个函数。只需将其设置为:

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

您就会得到它的工作。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文