Найти в Дзене
SoftSAR

Разработка современных графических интерфейсов wxPython

wxPython кросс-платформенная библиотека с открытым исходным кодом для создания графического (пользовательского) интерфейса программы. Реализуется в качестве набора модулей расширений Python, которые оборачивают компоненты GUI кросс-платформенной библиотеки wxWidgets. Модуль также имеет набор классов для работы с графическими изображениями, HTML, XML документами, архивами, файловыми системами, процессами, подсистемами печати, мультимедиа, сетями, классы для организации многопоточности, отладки, отправки дампов и множество других инструментов. Устанавливаем необходимые библиотеки через командную строку: pip install wxPython Документация доступна по ссылке. Основы wxPython В первую очередь мы импортируем модуль wx, затем создаем класс для реализации оконного интерфейса. MyFrame()  контейнер, содержащий все виджеты компоненты формы. Параметр title отвечает за заголовок (название) окна программы, параметр size принимает кортеж с шириной и высотой окна. Методом wx.App() мы импортируем п
Оглавление

wxPython кросс-платформенная библиотека с открытым исходным кодом для создания графического (пользовательского) интерфейса программы. Реализуется в качестве набора модулей расширений Python, которые оборачивают компоненты GUI кросс-платформенной библиотеки wxWidgets. Модуль также имеет набор классов для работы с графическими изображениями, HTML, XML документами, архивами, файловыми системами, процессами, подсистемами печати, мультимедиа, сетями, классы для организации многопоточности, отладки, отправки дампов и множество других инструментов.

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

pip install wxPython

Документация доступна по ссылке.

Основы wxPython

В первую очередь мы импортируем модуль wx, затем создаем класс для реализации оконного интерфейса. MyFrame()  контейнер, содержащий все виджеты компоненты формы. Параметр title отвечает за заголовок (название) окна программы, параметр size принимает кортеж с шириной и высотой окна. Методом wx.App() мы импортируем пакет для работы с wxPython. Строкой frame = MyFrame() создаем экземпляра нашей программы, которая впоследствии и будет запущена и передаем ей необходимые параметры. Методом Show() делаем программу видимой и методом MainLoop() запускаем программу.

Результат выполнения программы:

-2

Текстовая метка

Label Text  это текст, отображаемый внутри окна. С написанием Label Text в вам поможет виджет StaticText, со следующими параметрами: первый параметр указывает, где располагается объект, второй параметр label содержит текст элемента. Для компоновки виджетов на форме используем BoxSizer вертикальную компоновку элементов.

Результат выполнения программы:

-3

События и кнопки

Кнопки  важная часть любого программного обеспечения, ведь именно с помощью кнопок пользователь взаимодействует с программой. Для создания кнопок необходимо использовать виджет Button(). Параметром label устанавливаем название для кнопки. Создадим функцию click(), которая будет выполнятся при нажатии на кнопку. Метод Bind() кнопки принимает событие и вызываемую функцию.

Результат выполнения программы:

-4

Поля ввода

Поля ввода также называются текстовыми полями  это области для пользовательского ввода информации. С помощью виджета TextCtrl создаем текстовое поле. Методом GetValue() считываем текст введенный в поле. Метод SetLabel позволяет изменять содержимое текстовой метки.

-5

Калькулятор

Используем wxPython для создании макета калькулятора. Импортируем необходимые модули. Создаем кортеж с элементами (названиями кнопок). Создаем внешнюю сетку размером 4 на 5 GridBagSizer для размещения виджетов. Создаем текстовое поле для отображения действий и результатов вычислений, размещаем поле в строке сетки шириной 4 клетки. Циклом идем по списку, создаем кнопки и размещаем их по сетке. Методом Font устанавливаем размеры шрифтов для текстового поля и текста кнопок.

-6

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

С уважением, Карян Армен.
Занимаюсь профессиональной разработкой прикладных программ на Python.
email SoftSAR@yandex.ru
Telegram @SoftSar_am