Python считается одним из наиболее востребованных языков программирования во всем мире. Популярность языка связана с универсальностью и простотой изучения языка, а также большим количеством библиотек в свободном доступе, которое не перестают пополняться. Библиотеки Python позволяют разрабатывать современный графический пользовательский интерфейс. В статье мы рассмотрим модуль для разработку GUI PySide2, но стоит также упомянуть аналоги: PyQt5, Tkinter и WxWidget.
PySide2 и PyQt5 привязка языка Python к инструментарию Qt. Основное отличие между этими модулями заключается в лицензии под которыми распространяются эти две обёртки над Qt. PySide доступна для свободного использования как в открытых, так и закрытых, в частности, коммерческих проектах, поскольку лицензирована по LGPL.
Устанавливаем необходимые библиотеки через командную строку:
pip install PySide2
Основы PySide2
Результат выполнения программы:
В первую очередь мы импортируем PySide2 и его классы, полезные в создании виджета GUI, а затем создаем класс (объект) для реализации оконного интерфейса. QMainWindow() контейнер, содержащий все виджеты компоненты формы. SetGeometry() метод устанавливающий положение и размеры окна. SetWindowTitle() метод устанавливающий заголовок окна. SetStyle() Метод устанавливающий стиль окна, метод show() создает и отображает весь разработанный интерфейс. Метод exit(app.exec_()) обеспечивает работу окно до его закрытия пользователем. Без этой строчки кода программа завершится сразу после выполнения.
Текстовая метка
Результат выполнения программы
Label Text это текст, отображаемый внутри окна. С написанием Label Text в вам поможет виджет Qlabel класса QtWidgets. Для размещения Qlabel создаем объект centralwidget. С помощью метода QLabel() создаем текстовую метку. Методом SetText() записываем в QLabel текст, в качестве аргумента метод принимает только строковые данные. Метод setGeometry() задает положение и размеры виджета.
События и кнопки
Кнопки важная часть любого программного обеспечения, ведь именно с помощью кнопок пользователь взаимодействует с программой. Для создания кнопок необходимо использовать виджет QPushButton(). В коде выше переменная self.centralwidget передается в метод из Qwidget под названием QPushbutton() тем самым создается кнопка. Методом setText() устанавливаем название для кнопки. Метод Move() определяет положение кнопки на форме. Создадим функцию click(), которая будет выполнятся при нажатии на кнопку. Событие clicked возникает каждый раз, когда кнопка была нажата, метод connect() реагирует на событие нажатия кнопки и вызывает функцию, которая была ей передана в качестве параметра.
Поля ввода
Поля ввода также называются текстовыми полями — это области для пользовательского ввода информации.
С помощью метода QLineEdit создаем текстовое поле. Методом text() считываем текст введенный в поле. Метод Resize() позволяет изменять размер виджета поля ввода.
Только что, мы рассмотрели руководство для создания графических пользовательских интерфейсов с помощью библиотеки PySide2.
Однако, PySide2 предоставляет более удобные инструменты для создания графических интерфейсов, а именно Qt дизайнер.
Откройте Qt Designer, где вы увидите диалог новой формы, выберите Main Window и нажмите Создать. После этого у вас должна появиться форма — шаблон для окна, размер которого можно менять и куда можно вставлять объекты из окна виджетов и т.д. Ознакомьтесь с интерфейсом, он довольно простой.
Все элементы формы и их иерархия по умолчанию отображаются в правой части окна Qt Designer под названием Object Inspector. Вы с лёгкостью можете удалять объекты, кликая по ним правой кнопкой мыши в этом окне. Или же вы можете выбрать их в основной форме и нажать клавишу DEL на клавиатуре. В итоге мы имеем почти пустую форму. Все доступные для размещения объекты расположены в левой части экрана. Для расположения объектов на форме необходимо: выбрать нужный объект из списка и перетащить его в нужное место на форме.
Таким образом, всего в несколько кликов мы можем создавать современные графические интерфейсы.
Qt дизайнер сохраняет наш макет в расширении .ui. Для использования макета в нашем приложении его необходимо конвертировать в файл .py.
Для этого мы используем команду pyside2-uic из терминала/командной строки:
pyside2-uic "path/design.ui" -o "output_path/design.py"
Теперь у нас есть файл design.py с нужной частью дизайна нашего приложения и мы начинать работу над созданием его логики.
Это были основы использования PySide2 для разработки Python GUI приложений. Теперь вы можете спокойно создавать дизайн приложений и конвертировать их в файл Python с помощью команды pyside2-uic.
С уважением, Карян Армен.
Занимаюсь профессиональной разработкой прикладных программ на Python.
email SoftSAR@yandex.ru
Telegram @SoftSar_am