Я использую Tkinter, я определил функцию ниже для очистки записей, но она работает только для записей, которые имеют значения по умолчанию, даже когда я ввожу новые значения в эти записи, она может удалить их, но не очищает запись, которая не имеет значения по умолчанию, В чем проблема, Почему запись 4 не проясняется?
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)
Очевидно, что
entry4
естьNone
.