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?

È stato utile?

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()
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top