Hallo Alter Mann,
so kann ich mich auch bald nennen....
Zusätzlich zu den Anmerkungen von Sirius, es darf nur ein Exemplar von Tk() geben.
Also wenn Du das zweite"Programm" startest, muss dieses mit dem selben Rootfenster funktionieren,
wie das erste "Programm". Also root an das zweite "Programm" übergeben.
Ich hab ein kleines Beispiel, wie Fenster verschwinden und wieder hervor geholt werden.
Code: Alles auswählen
import tkinter as tk
from functools import partial
def main(root):
erstes_fenster = tk.Frame(root)
erstes_fenster.grid(column=0, row=0)
textfenster = tk.Label(erstes_fenster, text='Mein erstes\nFenster')
tastentext = 'Weiter zum\n2. Fenster'
taste_schliesse_erstes = tk.Button(erstes_fenster, text=tastentext, bd=5,
command=partial(schliesse_erstes,
root, erstes_fenster))
textfenster.grid(column=0, row=0)
taste_schliesse_erstes.grid(column=0, row=1)
def schliesse_erstes(root, erstes_fenster):
erstelle_zweites_fenster(root, erstes_fenster)
erstes_fenster.grid_forget()
def erstelle_zweites_fenster(root, erstes_fenster):
zweites_fenster = tk.Frame(root, erstes_fenster)
zweites_fenster.grid(column=0,row=0)
textfenster = tk.Label(zweites_fenster, text='Mein zweites Fenster',
bd=5, justify='center', bg='yellow').grid(column=1,
row=0)
tastentext = 'Zurück zum\nerstenFenster'
taste_zurueck = tk.Button(zweites_fenster, text=tastentext,bg='green',
command=partial(zeige_erstes_fenster,
root, erstes_fenster,
zweites_fenster)).grid(column=0,
row=1)
taste_ende = tk.Button(zweites_fenster, command=partial(beende, root),
text='Anwendung\nbeenden', bd=5, bg='red').grid(
column=2, row=1)
def zeige_erstes_fenster(root, erstes_fenster, zweites_fenster):
zweites_fenster.destroy()
erstes_fenster.grid(column=0, row=0)
def beende(root):
root.destroy()
if __name__ == ''__main__':
root = tk.Tk()
main(root)
root.mainloop()
Gruss Peter