Forum: PC-Programmierung Python - Tkinter - Elemente replatzieren


von Guest (Gast)


Lesenswert?

Hallo!

Bin Neuling beim Programmieren mit Python 3. Beherrsche C ziemlich gut, 
aber nicht mit GUI.

Ich weiß mittlerweile, wie man mit tkinter ein Fenster erstellt und 
Buttons, Eingabefelder Label und das Menü erstellt, positioniert und 
verwendet.

Nun möchte ich ein kleines Programm schreiben, bei dem es mehrere Seiten 
gibt.

Also z.B. ist die erste Seite die Willkommensseite. Dann wählt man im 
Menü aus, dass man z.B. eine neue Kartei anlegen will. Dann muss ein 
Formular angezeigt werden. Das bedeutet, die Willkommensschrift muss weg 
und stattdessen müssen Eingabefelder  und Buttons her.

Wie macht man so eine Replatzierung von Elementen im laufenden Programm?

Habe folgendes versucht:

if zustand==0:
    labelWillkommen.grid(row=0, column=0, padx=0, pady=0)
else:
    labelKartei.grid(row=0, column=0, padx=0, pady=0)

Die Variable "zustand" wird im Programm geändert (Konsolenausgabe 
bestätigt es), aber das ursprüngliche Label bleibt. Gibt es da einen 
Befehl, das die Neuplatzierung der Elemente bewirkt? Oder geht man da 
eher anders vor?

Danke für alle Tipps im Voraus!

von yesitsme (Gast)


Lesenswert?

gibts da kein grid_remove() oder sowas?

von Possetitjel (Gast)


Lesenswert?

yesitsme schrieb:

> gibts da kein grid_remove() oder sowas?

Klar. Ergänzend gibt's auch grid_forget.

von Guest (Gast)


Lesenswert?

Danke, hab eine Lösung gefunden:

def fenster_raeumen():
    list_widgets=fenster.grid_slaves()
    for i in list_widgets:
        i.destroy()

So werden die Elemente wirklich zerstört und es gibt keine Memory Leaks.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.