Pergunta

Você conhece uma maneira inteligente de se esconder ou de qualquer outra maneira se livrar da janela da raiz que aparece, aberta por Tk()? Eu gostaria apenas de usar uma caixa de diálogo normal.

Devo pular a caixa de diálogo e colocar todos os meus componentes na janela da raiz? É possível ou desejável? Ou existe uma solução mais inteligente?

Foi útil?

Solução

Provavelmente, a grande maioria dos aplicativos baseados em TK coloca todos os componentes na janela raiz padrão. Esta é a maneira mais conveniente de fazê -lo, pois já existe. Escolher ocultar a janela padrão e criar a sua é uma coisa perfeitamente boa de se fazer, embora exija apenas um pouquinho de trabalho extra.

Para responder sua pergunta específica sobre como escondê -la, use o retirar o Método da janela da raiz:

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

Se você quiser tornar a janela visível novamente, ligue para o deiconificar (ou wm_deiconify) Método.

root.deiconify()

Depois de terminar com a caixa de diálogo, você pode destruir a janela da raiz junto com todos os outros widgets Tkinnter com o destruir método:

root.destroy()

Outras dicas

Não testei, pois não tenho nenhum ambiente de python/tknter, mas tente isso.

No puro TK, há um método chamado "WM" para gerenciar as janelas. Lá você pode fazer algo como "WM Retiro .mywindow" onde '.mywindow' é um Toplevel.

Em Tkin, você deve ser capaz de fazer algo semelhante a:

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

Se você quiser tornar a janela visível novamente, ligue para o deiconificar (ou wm_deiconify) Método.

root.deiconify()

No OSX, o IConify parece funcionar melhor:

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

Se você não quiser lá para ser "flash" à medida que a janela é criada, use esta ligeira variação:

import Tkinter as tk
root = tk.Tk()
root.overrideredirect(1)
root.withdraw()
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top