Рубрики
Без рубрики

WxPython: введение в размерный контроль

Получите практические, реальные навыки Python на наших ресурсах и пути

Автор оригинала: Mike Driscoll.

Toolkit WXPYPHON дает альтернативу использовать Sizers для макета, который известен как «Size_Controls». Эти элементы управления или виджеты являются в основном виджеты верхнего уровня (например, кадр, панель, диалоговое окно и т. Д.), которые встроены в систему размера логики. Эта статья будет охватывать все четыре типов Size_Controls. Они следующие:

  • Sizepanel.
  • SizeScrolledPanel.
  • SizedFrame.
  • SizeDialog.

Виджет размера CCROLLEDPANEL является новым как wxpython 2.9.3.1 , но остальные 3 типа элементов управления доступны в Wxpython 2.8.8 и, возможно, старые версии (см. TRAC для получения дополнительной информации). Просто держите это в виду, если вы находитесь на Wxpython 2.8. Если вы будете готовы, мы можем начать!

Sizepanel.

Виджет Sizepanel автоматически создает сам Sizer. Sizer по умолчанию подключается к вертикальной коробке Sizer. Виджет также автоматически добавит любые дети, которые вы добавляете в панель в Sizer. Если вам нужно изменить тип Sizer, просто позвоните Sapizertype () И пропустите его «горизонтально», «вертикальный», «форма» (2-COL Flex Sizer Sizer) или «сетка». Если вы выбираете «сетку», то вы также можете пройти еще два аргумента: «Коллс» и «ряды». Согласно демонстрации WXPYPHON: Этот класс также применяет контрольные границы, которые придерживаются руководящих принципов человеческого интерфейса нативной платформы (HIG) на Win, GTK и Mac.

Давайте посмотрим на простой пример:

Код для добавления виджетов в Sizers гораздо меньше многословных при использовании виджета размера Control. Если вы хотите попробовать небольшой эксперимент, попробуйте добавить следующую строку кода прямо перед петлей в Sizepanel Класс:

Это заставит добавлять виджеты горизонтально, а не вертикально. Просто для сравнения, давайте найму минутку и посмотрим на обычный способ сделать этот вид макета с Sizer:

Основное различие между этими двумя кусками кода состоит в том, что BrangerPanel Код имеет несколько дополнительных линий, связанных с настройкой Sizer, добавляя виджеты в Sizer и затем устанавливая Sizer.

ОсобенностьСцСКРОЛЛЕДПАНЕЛЬ

SizeScrolledPanel очень похож на виджету ScrolledPanel в том, что если на одной панели есть слишком много виджетов, она создаст прокрутку. Главное отличие в том, что еще раз, размер контроля размера сделает все материалы Sizer для нас. Вот пример:

Код выше, очень похож на пример Sizepanel, однако я добавил немного дополнительной логики, чтобы развернуть текстовые элементы управления. Ты видел это? Посмотрите на петлю, сразу после того, как мы создадим виджет управления текстовым управлением:

Используя Sized Control, он добавляет специальный метод нашим виджетам, которые называются Setsizerprops Отказ Допустимые значения для этого метода являются «пропорциями», «HGROW», «VGROW», «Align», «Галочный», «Valign», «Граница», «Minsize» и «Развернуть». В этом примере мы устанавливаем Развернуть логично, правда.

Освободный кадр

Освободный кадр немного отличается от последних двух элементов управления двумя размерами в том, что он автоматически устанавливает SizePanel в качестве своего первого ребенка. Если вы хотите получить доступ к этой панели, вам нужно будет позвонить GetContentsPane () Отказ Давайте посмотрим на пример:

Здесь мы видим, что нам нужно извлечь Sizepanel Таким образом, мы можем добавить кнопки к нему. Это было просто!

SizeDialog

SizeDialog очень похоже на Sizeframe При этом он также имеет встроенный размер Sizepanel. Давайте сделаем производную из одного из демонстрантов WXPYPHON, чтобы мы могли видеть, как это работает:

Этот код демонстрирует две новые концепции. Он показывает новый тип Sizer («Форма»), и он показывает, как устанавливать Sizer. Тип Sizer «Form» в основном говорит WxPython поставить виджеты на две колонны вместо того, чтобы укладывать их все вертикально. Таким образом, у нас есть Statictext и а TextCtrl на том же уровне друг с другом. Радиообуттон все в своем ряду. Как это случилось? Это где вложенная часть Sizer приходит. Мы создаем новый Sizepanel что мы назначаем Радиопан И тогда мы изменим свою ориентацию на «горизонтальный». Далее мы добавляем 3 радиообуттона к нему, устанавливая RadioPane в качестве родителя.

Упаковка

На данный момент вам должно быть достаточно информации, чтобы начать работу размером размером WxPython для себя. Вы только что узнали, как использовать все четыре варианта: SizedPanel, SizeScrolledPanel, Sizeframe и SizeDialog. Вы также немного узнали о том, как управлять размером в гнезде друг друга. Вложенность – это очень мощный инструмент, который может помочь вам создать очень сложные интерфейсы. Я думаю, что лучшая вещь о размерах контроля – это то, что они делают использование сизеров более интуитивным.

Дополнительные воспоминания

Скачать источник

  • wx_sized_controls.zip

Примечание. Код в этой статье был протестирован с использованием WxPython 2.9.4.0 (Classic) и Python 2.7.3 на Windows 7