Как очистить tk.Entry

Я видел способ entry.delete(0, 'end') но мне почему то постоянно пишет _tkinter.TclError: bad text index "1" и не важно что я туда напишу. Любой другой индекс или к примеру 'first' он всегда выдаёт эту ошибку


Ответы (1 шт):

Автор решения: insolor

Текст ошибки

bad text index "1"

говорит о том, что у вас не Entry а Text (для Entry аналогичная ошибка звучит как bad entry index "1.0").

Для Text индексы должны быть формата номер_строки.номер_колонки (причем номер строки считается с 1, а номер колонки с 0) - в виде числа с плавающей точкой, например 1.0 (но не целого числа 1), или в виде строки "1.0".

Рабочий пример:

from tkinter import *

root = Tk()

entry = Entry()
entry.pack()


def clear_entry():
    entry.delete(0, END)  # Удалить все, начиная с 0-го символа до конца


Button(text="Clear Entry", command=clear_entry).pack()


text = Text()
text.pack()


def clear_text():
    text.delete(1.0, END)  # Удалить все, начиная с 0-го символа 1-й строки до конца


Button(text="Clear Text", command=clear_text).pack()


root.mainloop()
→ Ссылка