@New_account

Как очистить поле для ввода текста в tkinter?

Мне нужно очистить поле для ввода текста в tkinter. В интернете нашёл такое решение: entry.delete(0, END) Где entry - имя поля ввода (прямая ссылка на него), 0 - начало строки поля ввода, END - конец строки поля ввода. Эта команда должна очистить поле ввода от начала до конца. Но выскакивает вот такая ошибка:
AttributeError: 'NoneType' object has no attribute 'delete'
Кто хорошо знаком с tkinter прошу помочь.
  • Вопрос задан
  • 2419 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Метод place ничего не возвращает, поэтому строка кода

entry = Entry(canvas,width=20,).place(x=150,y=300,)

присваивает переменной entry значение None

Исправьте на
entry = Entry(canvas, width=20,)
entry.place(x=150, y=300)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
NeiroNx
@NeiroNx
Программист
Для начала надо получить само поле. Вы его не получили.
в пределах класса:
class Application(Tk):
	def OnEnterInput(self, event):
		text=u''+self.input.get()
		self.Send(text)
		self.input.delete(0, END)
	def createWidgets(self):
.....
		self.input = Entry(self, textvariable=self.inline)
		self.input.grid(row=0, column=0, columnspan=2, pady=3, padx=3, sticky='ew')
		self.input.bind("<Return>", self.OnEnterInput)

полный код тут
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы