2013-02-23 12 views
6

Say mam jakiś prosty kod, tak:Toplevel w Tkinter: Zapobiegać dwa okna od otwarcia

from Tkinter import * 
root = Tk() 
app = Toplevel(root) 
app.mainloop() 

To otwiera dwa okna: Okno Toplevel(root) i okno Tk(). Czy można uniknąć otwarcia okna Tk() (root)? Jeśli tak to jak? Chcę tylko toplevel. Chcę, aby tak się stało, ponieważ robię program, który będzie miał wiele otwartych okien, które są wszystkie Toplevel 's z root.

Dzięki!

Odpowiedz

10

Metoda withdraw() usuwa okno z ekranu.
Metoda iconify() minimalizuje okno lub zamienia je w ikonę.
Metoda deiconify() przerysuje okno i/lub aktywuje je.

Jeśli wybierzesz withdraw(), upewnij się, że rozważałeś nowy sposób na wyjście z programu przed testowaniem.
np.

from Tkinter import * # tkinter in Python 3 

root = Tk() 
root.withdraw() 

top = Toplevel(root) 
top.protocol("WM_DELETE_WINDOW", root.destroy) 

but = Button(top, text='deiconify') 
but['command'] = root.deiconify 
but.pack() 

root.mainloop() 

Sposób protocol() mogą być wykorzystane do rejestracji funkcję, która będzie wywoływana, gdy
Toplevel okna blisko przycisk jest wciśnięty. W takim przypadku możemy użyć destroy(), aby wyjść.

Powiązane problemy