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

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 4 5 6 7 8 9 10 11 12 13
в 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 показывает небольшое диалоговое окно.

Здесь мы предоставляем три параметра: текстовое сообщение, заголовок сообщения и флаги. Флаги используются для отображения различных кнопок и значков.

В нашем случае мы показываем кнопку ОК и значок информации.

Создать диалоговое окно сообщения просто.

Мы устанавливаем диалог как окно верхнего уровня, указав None в качестве родителя.

Чтобы отобразить диалог на экране, мы вызываем метод ShowModal.

Чтобы создать диалоговое окно about, мы должны создать два объекта — wx.adv.AboutDialogInfo и wx.adv.AboutBox.

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

Мы создаем экземпляр этого класса, а затем мы вызываем метод ShowModal.

Позже мы должны уничтожить наш диалог с помощью метода Destroy.

Теперь давайте пройдемся по виджетам библиотеки wxPython.

Button — это простой виджет, который содержит текстовую строку и используется для запуска действия.

В этом примере мы создаем кнопку «Закрыть», которая при нажатии завершает работу приложения.

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

Методом Bind мы связываем событие с методом, и событие запускается, когда мы нажимаем на кнопку.

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

Виджет ToggleButton — это кнопка, которая имеет два состояния: нажата и не нажата.

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

В этом примере мы меняем цвет панели, нажимая на кнопку.

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

Обработчик события Toggle вызывается, когда мы нажимаем кнопку.

В этом методе мы устанавливаем цвет фона панели в зависимости от того нажата кнопка или нет.

Виджет StaticText отображает одну или несколько строк текста, доступного только для чтения.

Здесь мы создаем шрифт для текста.

И устанавливаем шрифт с помощью метода SetFont.

Виджет StaticLine отображает в окне простую строку, которая может использоваться как разделительная строка.

Виджет StaticBox используется для логической группировки различных виджетов.

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

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

Какая будет рамка, столько виджетов и поместится в блок.

Виджет ComboBox — это выпадающий список с кнопкой.

Когда вы нажимаете кнопку, появляется список.

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

При создании виджета ComboBox, параметр choices принимает список строк, отображаемых в поле со списком.

Стиль READONLY делает строки списка доступными только для чтения.

И когда мы выбираем параметр из поля со списком, запускается событие COMBOBOX.

К этому событию мы подключаем обработчик события OnSelect.

CheckBox — это виджет, который имеет два состояния: включен и выключен.

Здесь мы проверяем состояние виджета CheckBox с помощью метода GetValue.

И событие CHECKBOX запускается, когда мы щелкаем по виджету CheckBox.

При запуске этого события вызывается обработчик ShowOrHide.

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

Группа переключателей определяется тем, что первый переключатель в группе содержит стиль GROUP.

Все остальные переключатели, определенные после первого переключателя с этим

1 ... 4 5 6 7 8 9 10 11 12 13
На этом сайте Вы можете читать книги онлайн бесплатно русская версия Создание настольных Python приложений с графическим интерфейсом пользователя - Тимур Машнин.
Книги, аналогичгные Создание настольных Python приложений с графическим интерфейсом пользователя - Тимур Машнин

Оставить комментарий