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

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

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

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

Мы устанавливаем диалог как окно верхнего уровня, указав 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.

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

Объявление другой радиокнопки с флагом GROUP запустит новую группу радиокнопок.

Здесь у нас есть группа из двух переключателей.

И состояние каждого из переключателей отображается в строке состояния.

И мы привязываем событие RADIOBUTTON к обработчику события SetVal.

Также мы создаем статусбар с двумя полями.

В методе SetVal мы узнаем состояния переключателей.

И мы обновляем поля строки состояния до текущих значений переключателей.

Датчик Gauge — это виджет, который используется при выполнении длительных задач, где требуется индикатор, показывающий текущее состояние задачи.

В этом примере у нас есть датчик и кнопка, которая запускает датчик.

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

В эти моменты мы обновляем шкалу датчика.

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

В конструкторе виджета Gauge, параметр диапазона устанавливает максимальное целочисленное значение виджета.

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

Здесь сначала мы проверяем, находится ли переменная count в диапазоне задачи.

Если нет, то возвращаемся из метода.

Если же задача еще не выполнена, мы запускаем таймер.

И метод OnTimer вызывается периодически после запуска таймера.

В этом методе мы обновляем переменную count и виджет датчика.

Если переменная count равна максимальному значению, мы останавливаем таймер.

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

Таким образом, мы можем выбрать конкретное значение из диапазона.

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

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

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