Как удалить виджет и изменить размер главного окна?

У меня есть тестовое приложение, которое использует Python и Tkinter для представления пользователю ряда текстовых полей с помощью диспетчера компоновки сетки.

Чтобы уменьшить беспорядок на экране, у меня есть кнопка Показать/Скрыть, которая удаляет и показывает несколько некритичных виджетов:

if show_all: 
    # Display widget
    widget.grid()
else :
    # Hide widget
    widget.grid_remove()

Далее я хотел бы заставить главное окно изменить размер после изменения виджетов.

Любые предложения приветствуются.


person KermitG    schedule 09.02.2011    source источник


Ответы (1)


По умолчанию размер главного окна должен измениться, если пользователь не изменил размер окна. Если пользователь изменил размер окна, вы можете переосмыслить необходимость его уменьшения. Если они изменили его размер, они, вероятно, хотят, чтобы он был в том размере, в котором они его изменили.

Несмотря на это, попробуйте установить геометрию окна главного окна (например: root.wm_geometry("")) на пустую строку. Это заставит главное окно изменить макет своих дочерних элементов.

person Bryan Oakley    schedule 09.02.2011
comment
Ах, это был root.wm_geometry(), которого мне не хватало. Спасибо - person KermitG; 10.02.2011
comment
Как насчет того, чтобы изменить размер окна только в зависимости от размера удаленных виджетов? Описанный вами метод делает размер окна таким же при первом запуске. - person Noctis Skytower; 07.03.2012