2013-04-12 2 views
5

Ich würde gerne ein Fenster anzeigen nachdem ich withdraw angerufen habe.Wie zeigt man ein Fenster an, das mit der Methode "Zurückziehen" ausgeblendet wurde?

Das Folgende ist mein aktueller Code:

from Tkinter import * 

def callback():  
    global root 
    root.withdraw() 
    win2 = Tk() 

root = Tk() 
Label(root,text='this is a window').pack() 
Button(root,text='withdraw',command=self.callback).pack() 
mainloop() 

Sobald ich die Taste drücke, verschwindet das Fenster viel wie ich es will, und ein weiteres Fenster erscheint und alles funktioniert super. Wie bekomme ich das erste Fenster im gleichen Zustand zurück?

+0

Ein wichtiges Detail: Callback-Funktionen sind keine Subprozesse. Sie laufen auf demselben Thread wie der Tkinter-Code, und die GUI friert ein, wenn sie zu lange dauern. Wenn es sich um einen Subprozess handelt, können Sie von dieser Funktion aus nicht auf globale Variablen zugreifen. –

+0

Sie sollten niemals zwei Instanzen von 'Tk' erstellen - Tkinter ist einfach nicht dafür gedacht, so zu arbeiten. Wenn Sie mehrere Fenster benötigen, erstellen Sie Instanzen von 'Toplevel'. –

+0

Danke @Bryan Oakley !! – IcyFlame

Antwort

8

die folgenden Befehle verwenden, wenn Sie das Fenster angezeigt werden soll:

# root.update() # not required 
root.deiconify() 

Wenn Sie mehr darüber wissen möchten, finden Sie here.

+2

Der Aufruf von 'update' ist überflüssig. –

+0

Bedeutet das, dass es nicht benötigt wird ?? – IcyFlame

+0

richtig, es ist nicht erforderlich. –

Verwandte Themen