Tkinter 删除方法

Tkinter delete methode

我正在使用 Tkinter,我定义了下面的函数来清除条目,但它只适用于具有默认值的条目,即使我在这些条目中输入新值时它也可以删除它们但它不会清除条目没有默认值,问题出在哪里,为什么entry4没有弄清楚?

def clear_text():
    entry1.delete(0, END)
    entry2.delete(0, END)
    entry3.delete(0, END)
    if entry4:
        entry4.delete(0, END)

entry1 = ttk.Entry(left_frame,textvariable=text1)
entry1.insert(0,'1.5')
entry1.grid(row=0, column=1, ipadx=10, padx=0, pady=10)

entry2 = ttk.Entry(left_frame,textvariable=text2)
entry2.insert(0,'2')
entry2.grid(row=1, column=1, ipadx=10, padx=0, pady=10)

entry3 = ttk.Entry(left_frame,textvariable=text3)
entry3.grid(row=2, column=1, ipadx=10, padx=0, pady=10)
entry3.insert(0,'100')

entry4 = ttk.Entry(left_frame, textvariable=text4).grid(row=3, column=1, ipadx=10, padx=0, pady=10)

delete_button = ttk.Button(left_frame, text = "Delete", command=clear_text)
delete_button.grid(row=9, column=0, ipadx=10, padx=0, pady=10)

这是我点击删除按钮后会发生的事情

这一行-

entry4 = ttk.Entry(left_frame, textvariable=text4).grid(row=3, column=1, ipadx=10, padx=0, pady=10)

是问题所在。

当你定义一个Tkinter对象时,最好将.pack.grid分开,这样变量entry4指的是tkinter入口对象而不是.grid 方法,它是一个非类型。

试试这个 -

entry4 = ttk.Entry(left_frame, textvariable=text4)
entry4.grid(row=3, column=1, ipadx=10, padx=0, pady=10)