Es gibt einige Probleme mit Ihrer App, Sie sollten vielleicht die Struktur und Ihr Widget-Management überdenken. Bitte beachten Sie, lesen (http://effbot.org/tkinterbook/grid.htm) und überprüfen Sie andere Beiträge auf Stackoverflow und stellen Sie sicher, @Bryan Oakley Vergangenheit und Gegenwart Kommentare zu überprüfen.
Sie lokale Variablen verwenden, wie er erwähnt, dies leicht als global korrigiert wird, indem er erklärt, wie folgt:
global variable_name
in Ihrem Code,
zusätzlich, möchten Sie vielleicht Ihre Inhalte prüfen Umstrukturierung ("label"), wenn Sie es zu Ihrem root-Fenster add: aus:
content = Label(root, text = txt.get()).grid(row = 3, column = 0)
zu:
content = Label(root, text = txt.get())
content.grid(row = 3, column = 0)
, wenn Sie nicht sicher sind, was los ist, betrachten Druck Hinzufügen(), um den Code, hier ist ein kurzer Auszug:
def text() :
global content
print(root.grid_slaves())
if checking :
content = Label(root, text = txt.get())
content.grid(row = 3, column = 0)
Sie werden sofort sehen, dass jedes Mal, wenn Sie auf Drucken klicken Ich, Widgets werden zu Ihrem Layout hinzugefügt.
Best Practices für Ihr Layout (Best way to structure a tkinter application)
Schnell Hinweis:
def text() :
print(checking)
if checking :
content.grid_forget()
else :
content = Label(root, text = txt.get()).grid(row = 3, column = 0)
def check() :
checking = True
text()
root = Tk()
txt = StringVar()
checking = False
Prüfung ist immer falsch ... Sie sich anschauen sollten eine gewisse Logik Umdenken auch
'checking' ist eine lokale Variable innerhalb' check'. –