2013-04-12 15 views
5

Chciałbym pokazać okno po wywołaniu withdraw.Jak wyświetlić okno, które zostało ukryte za pomocą metody "wycofania"?

poniższych jest mój bieżący kod:

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() 

Jak tylko nacisnąć przycisk, okno znika, ile chcę, i pojawia się kolejne okno i wszystko działa świetnie. Jak mogę odzyskać pierwsze okno w tym samym stanie, w jakim było wcześniej?

+0

Jeden ważny szczegół: funkcje wywołania zwrotnego nie są podprocesami. Działają na tym samym wątku niż kod Tkinter, a GUI zawiesza się, jeśli trwa zbyt długo. Jeśli był to podproces, nie można uzyskać dostępu do zmiennych globalnych z tej funkcji. –

+0

Nie powinieneś nigdy tworzyć dwóch instancji 'Tk' - Tkinter po prostu nie jest zaprojektowany do pracy w ten sposób. Jeśli potrzebujesz wielu okien, twórz wystąpienia 'Toplevel'. –

+0

Dziękuję @Bryan Oakley !! – IcyFlame

Odpowiedz

8

Użyj następujących poleceń, jeśli chcesz wyświetlić okno:

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

Jeśli chcesz wiedzieć więcej na ten temat, patrz here.

+2

Wywołanie "aktualizacji" jest zbędne. –

+0

Czy to oznacza, że ​​nie jest wymagane? – IcyFlame

+0

poprawne, nie jest wymagane. –

Powiązane problemy