按下按钮的命令可以将按钮的文本插入到条目中

时间:2015-01-03 19:56:10

标签: 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= str(randint(0,100))
    button = tk.Button(root, text = data, command=callback).pack()
entry.pack()
root.mainloop()

导致条目被设置为最后一个按钮的文本。

1 个答案:

答案 0 :(得分:0)

你应该做两件事:

  1. 让您的callback函数接受一个将成为按钮文字的参数:

    def callback(text):
        entry.insert(0, text)
    
  2. 将每个按钮command选项分配给将callback发送此文字的lambda function

    command=lambda data=data: callback(data)
    
  3. 以下是完整代码的样子:

    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()