Come posso eliminare la finestra principale di Python Tkinter?
Domanda
Conosci un modo intelligente per nascondere o in qualche modo eliminare la finestra principale che appare, aperta da Tk ()
? Vorrei solo usare una normale finestra di dialogo.
Devo saltare la finestra di dialogo e mettere tutti i miei componenti nella finestra principale? È possibile o desiderabile? O esiste una soluzione più intelligente?
Soluzione
Probabilmente la stragrande maggioranza delle applicazioni basate su tk colloca tutti i componenti nella finestra principale predefinita. Questo è il modo più conveniente per farlo poiché esiste già. Scegliere di nascondere la finestra predefinita e crearne una tua è una cosa perfettamente da fare, anche se richiede solo un po 'di lavoro extra.
Per rispondere alla tua domanda specifica su come nasconderlo, usa ritiro metodo della finestra principale:
import Tkinter as tk
root = tk.Tk()
root.withdraw()
Se vuoi rendere di nuovo visibile la finestra, chiama deiconify (o wm_deiconify) metodo.
root.deiconify()
Una volta terminata la finestra di dialogo, puoi distruggere la finestra principale insieme a tutti gli altri widget di tkinter con destro metodo:
root.destroy()
Altri suggerimenti
Non ho testato dal momento che non ho alcun ambiente Python / TKinter, ma prova questo.
In puro Tk esiste un metodo chiamato " wm " per gestire le finestre. Lì puoi fare qualcosa come " wm ritirare .window " dove ".mywindow" è un livello superiore.
In TkInter dovresti essere in grado di fare qualcosa di simile a:
root = Tkinter.Tk()
root.withdraw() # won't need this
Se vuoi rendere di nuovo visibile la finestra, chiama deiconify (o wm_deiconify) metodo.
root.deiconify()
Su OSX, iconify sembra funzionare meglio:
root = Tkinter.Tk()
root.iconify()
Se non vuoi che ci sia un "flash" come viene creata la finestra, utilizzare questa leggera variazione:
import Tkinter as tk
root = tk.Tk()
root.overrideredirect(1)
root.withdraw()