Tkinter автоматически добавляет новую строку в конце данных в виджетах. Чтобы увидеть, пуст ли виджет, сравните индекс прямо перед этой новой строкой с начальным индексом; если они одинаковы, виджет пуст.
Вы можете использовать индекс "end-1c"
(или "end - 1 char"
), чтобы представить индекс символа непосредственно перед конечной новой строкой. Вы можете использовать метод compare
текстового виджета для сравнения.
if text.compare("end-1c", "==", "1.0"):
print("the widget is empty")
Предполагая, что вы не имеете сотни мегабайт в виджете, вы также можете получить содержимое и сравнить длину до нуля. Это делает временную копию данных в виджетах, которые в большинстве случаев должны быть достаточно безвредными. Опять же, вы не хотите получать завершающую новую строку:
if len(text.get("1.0", "end-1c")) == 0:
print("the widget is empty")
Почему вы не используете метод 'get'? –