2013-02-23 12 views
6

sagen, dass ich ein paar einfache Code haben, wie folgt aus:Toplevel in Tkinter: Prevent Zwei Fenster aus Opening

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

Dies öffnet zwei Fenster: das Toplevel(root) Fenster und das Tk() Fenster.

Kann das Fenster Tk() (root) beim Öffnen vermieden werden? Wenn das so ist, wie? Ich möchte nur den Toplevel. Ich möchte, dass dies passiert, weil ich ein Programm mache, das mehrere Fenster öffnen wird, die alle Toplevel von root sind.

Danke!

Antwort

10

Die Methode withdraw() entfernt das Fenster vom Bildschirm.
Die Methode iconify() minimiert das Fenster oder verwandelt es in ein Symbol.
Die Methode deiconify() wird das Fenster neu zeichnen und/oder aktivieren.

Wenn Sie withdraw() wählen, stellen Sie sicher, dass Sie vor dem Testen eine neue Methode zum Beenden des Programms in Betracht gezogen haben.
z.B.

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

Die protocol() Methode kann eine Funktion zur Registrierung verwendet werden, die die Schaltfläche aufgerufen wird, wenn der Nähe
Toplevel Fenster gedrückt wird. In diesem Fall können wir destroy() zum Beenden verwenden.

Verwandte Themen