我正在创建一系列按钮,每个按钮都有不同的文字。我想,在单击按钮时,检索其相应的文本并将该文本插入条目。我能得到的最好的是:
#!/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()
导致条目被设置为最后一个按钮的文本。
答案 0 :(得分:0)
你应该做两件事:
让您的callback
函数接受一个将成为按钮文字的参数:
def callback(text):
entry.insert(0, text)
将每个按钮command
选项分配给将callback
发送此文字的lambda function:
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()