Pregunta

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

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

¿Fue útil?

Solución

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 método de la ventana raíz:

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

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

root.deiconify()

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

root.destroy()

Otros consejos

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

En Tk puro hay un método llamado " wm " para gestionar 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 a la deiconify (o wm_deiconify) método.

root.deiconify()

En OSX, iconify parece funcionar mejor:

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

Si no desea que haya un " flash " a medida que se crea la ventana, use esta ligera variación:

import Tkinter as tk
root = tk.Tk()
root.overrideredirect(1)
root.withdraw()
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top