Tkinter fügt am Ende der Daten im Widget automatisch einen Zeilenumbruch hinzu. Um zu sehen, ob das Widget leer ist, vergleichen Sie den Index direkt vor diesem Newline mit dem Startindex; Wenn sie identisch sind, ist das Widget leer.
Sie können den Index "end-1c"
(oder "end - 1 char"
) verwenden, um den Index des Zeichens unmittelbar vor dem abschließenden Zeilenvorschub darzustellen. Sie können die Methode compare
des Text-Widgets verwenden, um den Vergleich durchzuführen.
if text.compare("end-1c", "==", "1.0"):
print("the widget is empty")
Angenommen, Sie nicht Hunderte von Megabytes in Ihrem Widget haben, können Sie auch den Inhalt erhalten und die Länge auf Null vergleichen. Dies macht eine temporäre Kopie der Daten im Widget, die in den meisten Fällen ziemlich harmlos sein sollte. Auch hier möchten Sie nicht den abschließenden Zeilenumbruch erhalten:
if len(text.get("1.0", "end-1c")) == 0:
print("the widget is empty")
Warum verwenden Sie nicht "get" -Methode? –