2012-02-03 3 views
1

У меня есть куча виджетов, и сейчас я использую Hide() и Show() для каждого виджета индивидуально, когда перелистываю разные разделы/страницы своей программы.Связать виджеты с группами, для Hide and Show, wxpython

Потому что я сделал это, вы можете видеть, как каждый виджет уходит/показывается один за другим (что своего рода отстой).

Есть ли способ группировать все эти виджеты, а затем иметь возможность скрывать() и показывать() эту группу, чтобы избежать этой привычки «один за другим»?

ответ

3

Попробуйте использовать функцию замораживания/оттаивания/макета, когда вы показываете и скрываете виджеты. Таким образом, все они должны появляться/исчезать одновременно.

+1

+1 отлично. однако из docs: Этот метод .... не реализован на всех платформах, ни для всех элементов управления, поэтому в основном это только подсказка к wxWindows, а не обязательная директива. – joaquin

+0

это работает очень хорошо для меня, хотя, как сказал joaquin, его не поддерживали на всех платформах. – thelost

1

Поместите свою группу виджетов, организованную в sizer в том же родительском контейнере (панель p.e.), и скройте родителя. Все виджеты исчезают с родителем.

Обратите внимание, что иногда скрывать (например) кнопки или флажки не лучшее решение. Доступные функциональные возможности для пользователя также могут быть модулированы с использованием widget.Disable()

+0

Есть ли другой способ сделать это без использования панели. Виджеты немного неорганизованны – thelost

+1

Тогда, может быть, пришло время начать рефакторинг кода :-). – joaquin

+0

Обычно вам нужна панель или вы потеряете правильное поведение табуляции кросс-платформенной –

 Смежные вопросы

  • Нет связанных вопросов^_^