Читаем Создание настольных Python приложений с графическим интерфейсом пользователя полностью

Чтобы создать элемент панели инструментов, мы вызываем метод AddTool.

Первый параметр, это идентификатор элемента.

Второй параметр — это метка элемента, третий — изображение элемента.

И обратите внимание, что метка не отображается, потому что стиль по умолчанию показывает только значки.

Также мы можем добавить группу RadioTool, из которой можно выбрать только один элемент.

После того, как мы разместили наши элементы на панели инструментов, мы вызываем метод Realize.

Кнопки инструментов генерируют событие EVT_TOOL, с помощью которого мы можем привязать обработчик элемента панели инструментов.



Теперь, давайте поговорим о компоновках в wxPython, с помощью которых виджеты размещаются внутри виджетов-контейнеров.

В wxPython можно размещать виджеты, используя абсолютное позиционирование или используя сайзеры.

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

И абсолютное позиционирование имеет ряд недостатков, а именно — размер и положение виджета не меняются, если мы изменяем размер окна, также приложения выглядят по-разному на разных платформах и изменение шрифтов в приложении может испортить компоновку.

Поэтому чаще всего в реальных программах используются сайзеры.

Здесь в этом примере мы размещаем три метки методом SetPosition используя абсолютное позиционирование.



Сайзеры решают все проблемы абсолютного позиционирования, и wxPython имеет сайзеры

BoxSizer

,

StaticBoxSizer

,

GridSizer

,

FlexGridSizer

,

GridBagSizer

, и

BoxSizer

.

Компоновка BoxSizer позволяет размещать несколько виджетов в строке или столбце.

И мы можем добавлять один сайзер в другой. Таким образом мы можем создавать очень сложные макеты.

Ориентация компоновки может быть вертикальная или горизонтальная.

И добавление виджетов в BoxSizer осуществляется с помощью метода Add.

Параметр пропорции определяет соотношение изменения виджетов в заданной ориентации.

Предположим, у нас есть три элемента с пропорциями 0, 1 и 2.

И они добавлены в горизонтальный BoxSizer.

Элемент с пропорцией 0 вообще не изменится.

Элемент с пропорцией 2 изменится в два раза больше, чем элемент с пропорцией 1 по горизонтали.

С помощью параметра flag вы можете дополнительно настроить поведение виджетов в BoxSizer.

Здесь мы можем контролировать границу border между виджетами, добавляя промежуток между виджетами в пикселях.

Чтобы применить границу, нам нужно определить стороны, где будет использоваться граница.

И мы можем комбинировать стороны, например LEFT | BOTTOM.

И наконец сайзер задается для контейнера с помощью метода setSizer.



Компоновка GridSizer размещает виджеты в двухмерной таблице.

И каждая ячейка в этой таблице имеет одинаковый размер.

Здесь в конструкторе мы указываем количество строк и столбцов в таблице, а также вертикальное и горизонтальное расстояние между ячейками.

Здесь мы использовали метод Add. И виджеты размещаются внутри таблицы в том порядке, в котором они добавляются. Сначала заполняется первая строка, затем вторая строка и т. д.

В методе Add мы используем параметры flag и border, которые определяют ширину границы ячейки.



Компоновка

FlexGridSizer

похожа на

GridSizer

.

Она также размещает свои виджеты в двухмерной таблице.

Но в то время как ячейки GridSizer имеют одинаковый размер, в FlexGridSizer строки и столбцы не обязательно имеют одинаковую высоту или ширину.

Поэтому эта компоновка обеспечивает немного больше гибкости при размещении элементов в ячейках.

Здесь размер каждой ячейки не одинаков, как в GridSizer.

И ширина и высота ячеек в одном столбце или строке может быть увеличена с помощью методов AddGrowableRow и AddGrowableCol.

Первый параметр здесь индекс строки или индекс столбца, а второй параметр — это доля прироста.



Компоновка GridBagSizer — это самая гибкая компоновка в wxPython.

Эта компоновка позволяет явно позиционировать элементы.

Элементы также могут занимать более одной строки или столбца.

И мы добавляем элементы с помощью метода Add.

Здесь параметр pos указывает положение в сетке.

В верхней левой ячейке pos (0, 0).

Параметр span — это диапазон элемента, например span (3, 2) — это виджет занимает 3 строки и 2 столбца.

Параметры флаг и граница обсуждались в BoxSizer.

И ширина и высота ячеек в одном столбце или строке может быть увеличена с помощью методов AddGrowableRow и AddGrowableCol.

Таким образом, GridBagSizer — это универсальная компоновка.

Здесь дочерний виджет можно добавить в определенную ячейку сетки.

Кроме того, дочерний виджет может занимать более одной ячейки по горизонтали или вертикали.



Диалоговые окна являются неотъемлемой частью большинства приложений с графическим интерфейсом.

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

И мы можем использовать предопределенные диалоги, такие как окна сообщений, диалоги шрифтов или цветов, или создавать свои собственные диалоги.

Окно сообщения предоставляет пользователю краткую информацию.

И класс MessageBox показывает небольшое диалоговое окно.

Перейти на страницу:

Похожие книги

Основы информатики: Учебник для вузов
Основы информатики: Учебник для вузов

Учебник состоит из двух разделов: теоретического и практического. В теоретической части учебника изложены основы современной информатики как комплексной научно-технической дисциплины, включающей изучение структуры и общих свойств информации и информационных процессов, общих принципов построения вычислительных устройств, рассмотрены вопросы организации и функционирования информационно-вычислительных сетей, компьютерной безопасности, представлены ключевые понятия алгоритмизации и программирования, баз данных и СУБД. Для контроля полученных теоретических знаний предлагаются вопросы для самопроверки и тесты. Практическая часть освещает алгоритмы основных действий при работе с текстовым процессором Microsoft Word, табличным редактором Microsoft Excel, программой для создания презентаций Microsoft Power Point, программами-архиваторами и антивирусными программами. В качестве закрепления пройденного практического курса в конце каждого раздела предлагается выполнить самостоятельную работу.

Вадим Васильевич Лысенко , Лариса Александровна Малинина , Максим Анатольевич Беляев

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT
Цифровой журнал «Компьютерра» № 24
Цифровой журнал «Компьютерра» № 24

ОглавлениеБольшие новостиMicrosoft BizSpark: поиски инвесторов и менторов Автор: Григорий РудницкийNASA открыло виртуальную лунную базу Автор: Михаил КарповТерралабПромзона: Катушка с лупой Автор: Николай МаслухинPixel Qi: дисплеи, не слепнущие на солнце Автор: Юрий ИльинПромзона: Батарейки Microsoft Автор: Николай МаслухинСофт: Process Explorer — порнобаннер в прицеле Автор: Николай МаслухинSynaptics: тачпады нового поколения Автор: Олег НечайПромзона: Очки-суфлер Автор: Николай МаслухинМобильный интернет для малого бизнеса Автор: Максим БукинВещь дня: беззеркальная камера Lumix G2 Автор: Андрей ПисьменныйHDBaseT 1.0: дешёвая замена HDMI Автор: Олег НечайПромзона: Воздушный холодильник Автор: Николай МаслухинСофт: Настраиваем Ubuntu с помощью Ubuntu Tweak Автор: Крестников ЕвгенийПромзона: Бескрайний бассейн Автор: Николай МаслухинСпособы обмана в мобильных сетях Автор: Максим БукинСвоя играВасилий Щепетнёв: О пользе словаря Автор: Василий ЩепетневКивино гнездо: Человек против обмана Автор: Берд КивиMicrosoft: что пошло не так Автор: Андрей ПисьменныйКафедра Ваннаха: Скольжение к сингулярности Автор: Ваннах МихаилВасилий Щепетнёв: Гамбит Форт-Росс Автор: Василий ЩепетневКафедра Ваннаха: Облачное программирование и Пуэрто-Рико Автор: Ваннах МихаилВасилий Щепетнёв: Следы на целлулоиде Автор: Василий ЩепетневКивино гнездо: Конфликт криптографии и бюрократии Автор: Берд КивиИнтерактивЛюдмила Булавкина, директор YouDo по маркетингу, о любительском контенте Автор: Юрий ИльинМакс Зацепин и Глеб Никитин о музыкальной игре для iPad Автор: Юрий ИльинСергей Матиясевич (3D Bank) о рынке трёхмерных моделей Автор: Юрий ИльинВ. Репин (ИХБФМ СО РАН) о бактерии из вечной мерзлоты Автор: Алла АршиноваДмитрий Завалишин об операционной системе «Фантом» Автор: Андрей ПисьменныйБлогиАнатолий Вассерман: «Марс-500» Автор: Анатолий ВассерманКак большой оператор споткнулся о маленького SaaS-провайдера Автор: Анисимов КонстантинАнатолий Вассерман: Дальневосточные «партизаны» Автор: Анатолий ВассерманГолубятня-ОнлайнГолубятня: Сидр №4 Автор: Сергей ГолубицкийГолубятня: Бедность Автор: Сергей Голубицкий

Журнал «Компьютерра»

Зарубежная компьютерная, околокомпьютерная литература
Внедрение SAP R/3: Руководство для менеджеров и инженеров
Внедрение SAP R/3: Руководство для менеджеров и инженеров

Это практическое всеобъемлющие руководство было написано специально для тех, кто выбирает стратегию внедрения SAP в организации. «Внедрение SAP R/3: руководство для менеджеров и инженеров» объясняет, что означает понятие «эпоха ERP», почему информация является одним из ключевых ресурсов предприятия, как SAP способствует росту конкурентоспособности компании, а также преимущества методологии ASAP в планировании и использовании ресурсов при внедрении SAP. Подход к ERP-системам, используемый в данной книге, будет крайне полезен менеджерам и специалистам, которым необходимо представить высшему руководству своих компаний основания для внедрения SAP; кроме того, данная книга будет весьма полезной тем, кто занимается проектами SAP или планирует такой проект в ближайшем будущем. Для тех читателей, кто непосредственно занят в проектах SAP, эта книга станет надежным руководством и поможет внести существенный вклад в развитие проекта.

Вивек Кале

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT