¿Cómo me deshago de la ventana raíz de Python Tkinter?

¿Conoces una forma inteligente de ocultar o de alguna otra manera deshacerte de la ventana raíz que aparece, abierta por Tk() ? Me gustaría usar un diálogo normal.

¿Debo omitir el diálogo y poner todos mis componentes en la ventana raíz? ¿Es posible o deseable? ¿O hay una solución más inteligente?

Probablemente, la gran mayoría de las aplicaciones basadas en tk colocan todos los componentes en la ventana raíz predeterminada. Esta es la forma más conveniente de hacerlo ya que ya existe. Elegir ocultar la ventana predeterminada y crear la suya propia es algo perfectamente correcto, aunque solo requiere un poco de trabajo extra.

Para responder a su pregunta específica sobre cómo ocultarla, use el método de retirada de la ventana raíz:

 import Tkinter as tk root = tk.Tk() root.withdraw() 

Si desea que la ventana vuelva a estar visible, llame al método deiconify (o wm_deiconify).

 root.deiconify() 

Una vez que haya terminado con el diálogo, puede destruir la ventana raíz junto con todos los demás widgets de tkinter con el método de destrucción :

 root.destroy() 

No lo he probado ya que no tengo ningún entorno Python / TKinter, pero intente esto.

En Tk puro hay un método llamado “wm” para administrar las ventanas. Allí puedes hacer algo como “wm remove .mywindow” donde ‘.mywindow’ es un nivel superior.

En TkInter deberías poder hacer algo similar a:

 root = Tkinter.Tk() root.withdraw() # won't need this 

Si desea que la ventana vuelva a estar visible, llame al método deiconify (o wm_deiconify).

 root.deiconify() 

En OSX, iconify parece funcionar mejor:

 root = Tkinter.Tk() root.iconify() 

Si no desea que haya un “flash” cuando se crea la ventana, use esta ligera variación:

 import Tkinter as tk root = tk.Tk() root.overrideredirect(1) root.withdraw()