Python 制作一个按钮';s命令导致按钮';s要插入到条目中的文本
我正在创建一系列按钮,每个按钮都有不同的文本。我想,在点击一个按钮后,检索它对应的文本并将该文本插入一个条目中。我能得到的最好结果是:Python 制作一个按钮';s命令导致按钮';s要插入到条目中的文本,python,tkinter,widget,Python,Tkinter,Widget,我正在创建一系列按钮,每个按钮都有不同的文本。我想,在点击一个按钮后,检索它对应的文本并将该文本插入一个条目中。我能得到的最好结果是: #!/usr/bin/env python import tkinter as tk from random import randint root= tk.Tk() entry= tk.Entry(root) def callback(): entry.insert(0, data) for i in range(20): data= st
#!/usr/bin/env python
import tkinter as tk
from random import randint
root= tk.Tk()
entry= tk.Entry(root)
def callback():
entry.insert(0, data)
for i in range(20):
data= str(randint(0,100))
button = tk.Button(root, text = data, command=callback).pack()
entry.pack()
root.mainloop()
这将导致条目设置为最后一个按钮的文本。您应该做两件事:
回调
函数接受一个将作为按钮文本的参数:
def callback(text):
entry.insert(0, text)
命令
选项分配给将此文本发送到回调
:
command=lambda data=data: callback(data)
import tkinter as tk
from random import randint
root= tk.Tk()
entry= tk.Entry(root)
def callback(text):
entry.insert(0, text)
for i in range(20):
data= str(randint(0,100))
tk.Button(root, text=data, command=lambda data=data: callback(data)).pack()
entry.pack()
root.mainloop()
谢谢这真的很有帮助!我总是在谷歌搜索编程问题时遇到这个网站,但我找不到这个问题的答案,所以我想我会做一个账户,并对结果感到非常满意。我一定会更深入地了解“lambda”的功能。我以前见过,但从来没有理解过。很高兴能帮上忙!lambda也没什么特别的。它基本上是一个串联函数。您可以使用
def func(data=data)获得相同的结果:回调(data)
,然后使用command=func
。您需要使用data=data
来为每次迭代捕获data
的值。有关更多信息,请参见此处: