Auf Ihrer Tkinter-GUI tritt der Fehler „AttributeError: NoneType-Objekt hat kein Attribut“ auf " beim Versuch, den Inhalt eines Eingabefelds abzurufen. Um dieses Problem zu beheben, ist es wichtig zu verstehen, warum das Widget „entryBox“ überhaupt auf „None“ gesetzt ist.
Tkinters Raster-, Pack- und Platzierungsfunktionen, die auf Widgets wie „Entry“ aufgerufen werden, geben „None“ zurück. Wenn ein Ausdruck wie a().b() in Python ausgewertet wird, wird das Ergebnis durch den Rückgabewert von b() bestimmt. Daher gibt Entry(...).grid(...) ausnahmslos None zurück.
Dieses Problem kann gelöst werden, indem das Eintrags-Widget in einer Zeile erstellt und dann in einer separaten Zeile angeordnet wird. Der geänderte Code sieht wie folgt aus:
entryBox = Entry(root, width=60) entryBox.grid(row=2, column=1, sticky=W)
Durch diese Trennung weisen Sie das Entry-Objekt der Variable „entryBox“ zu und positionieren es wie erwartet. Dieser Ansatz verbessert auch die Lesbarkeit und Wartbarkeit Ihres Layouts, da Sie das Raster organisieren und Anweisungen in verschiedene Blöcke packen können.
Das obige ist der detaillierte Inhalt vonWarum gibt mein Tkinter-Eingabefeld ein NoneType-Objekt zurück und wie kann ich den AttributeError beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!