Вопрос

Знаете ли вы умный способ скрыть или каким-либо другим способом избавиться от корневого окна, которое открывается с помощью Tk () ? Я хотел бы просто использовать обычный диалог.

Должен ли я пропустить диалог и поместить все мои компоненты в корневое окно? Это возможно или желательно? Или есть более разумное решение?

Это было полезно?

Решение

Вероятно, подавляющее большинство приложений на основе tk размещает все компоненты в корневом окне по умолчанию. Это самый удобный способ сделать это, так как он уже существует. Выбор, чтобы скрыть окно по умолчанию и создать свое собственное, является прекрасной вещью, которую нужно сделать, хотя это требует лишь небольшой дополнительной работы.

Чтобы ответить на конкретный вопрос о том, как его скрыть, используйте снять метод корневого окна:

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

Если вы хотите снова сделать окно видимым, позвоните в deiconify (или wm_deiconify).

root.deiconify()

После того, как вы закончили работу с диалоговым окном, вы можете уничтожить корневое окно вместе со всеми другими виджетами tkinter с помощью уничтожить метод:

root.destroy()

Другие советы

Я не тестировал, так как у меня нет среды Python / TKinter, но попробуйте это.

В чистом Tk есть метод с именем " wm " управлять окнами. Там вы можете сделать что-то вроде " wm изъять .mywindow " где .mywindow - это верхний уровень.

В TkInter вы должны делать что-то похожее на:

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

Если вы хотите снова сделать окно видимым, позвоните в deiconify (или wm_deiconify) метод.

root.deiconify()

В OSX iconify работает лучше:

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

Если вы не хотите, чтобы там была "вспышка" когда окно создано, используйте это небольшое изменение:

import Tkinter as tk
root = tk.Tk()
root.overrideredirect(1)
root.withdraw()
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top