一尘不染

在按下时创建一个按钮,在python 3.3的输入框中在该按钮上打印数字

python

我想创建一个在其上写有“ 2”的按钮....现在,当任何人单击它时,它将在输入框中显示数字“ 2” …错误是:在单击之前,它已经显示了“输入框中的2’

因此,请帮助我删除此错误,这是我的程序

from tkinter import *

root = Tk()  
def add(x):  
    e1=Entry(root)  
    e1.insert(INSERT, x)  
    e1.pack()

a=Button(root, text='2', command=add(2))  
a.pack()

root.mainloop()

阅读 231

收藏
2021-01-20

共1个答案

一尘不染

传递一个函数(lambda在下面的代码中使用),而不是函数的返回值。

from tkinter import *

root = Tk()  
e1 = Entry(root)  
e1.pack()

def add(x):  
    e1.insert(INSERT, x)

a = Button(root, text='2', command=lambda: add(2))
a.pack()

root.mainloop()

除此之外,从add函数中提取Entry创建代码。否则,每次单击按钮时都会创建条目。

2021-01-20