Python PyQt5 — средство создания графических приложений.
Пламенный привет посетителям этой страницы, пришедшим из социальных сетей! С апреля 2021-го года наблюдаю удивительное явление: обильный поток посетителей из 4-х социальных сетей. В связи с этим настоятельно рекомендую всем неоднократно и регулярно посещать сайт rtbsm.ru — там в общих чертах изложена Российская Теннисная Балльная Система Марии (Шараповой).
Python PyQt5 — это библиотека, позволяющая создавать кросс-платформенные приложения с графическим интерфейсом. Библиотека очень проста в использовании и идеально подходит для разработки оконных приложений практически любой сложности.
В состав библиотеки входит программа Qt Designer, с помощью которой можно размешать компоненты на форме путём перетаскивания мышью. При сохранении формы Qt Designer создает ХМL-файл, который можно загрузить внутри программы или автоматически преобразовать в код на языке Python.
Рассмотрим PyQt более подробно:
PyQt
Qt Designer в Linux с KDEТип - Привязка Qt для Python
Разработчик — Riverbank Computing
Написана на - C++, Python
Операционная система - Мультиплатформенное ПО (Windows, MacOS, Unix)
Первый выпуск - 1998 год
Последняя версия — 5.8 (15 февраля 2017)
Лицензия - GPL2, GPL3 и коммерческая
Сайт - riverbankcomputing.com/software/pyqt/introPyQt — набор «привязок» графического фреймворка Qt для языка программирования Python, выполненный в виде расширения Python.
PyQt разработан британской компанией Riverbank Computing. PyQt работает на всех платформах, поддерживаемых Qt: Linux и другие UNIX-подобные ОС, Mac OS X и Windows.
Существует 2 версии: PyQt5, поддерживающий Qt 5, и PyQt4, поддерживающий Qt 4. PyQt распространяется под лицензиями GPL (2 и 3 версии) и коммерческой.
PyQt практически полностью реализует возможности Qt. А это более 600 классов, более 6000 функций и методов, включая:
- Существующий набор виджетов графического интерфейса;
- стили виджетов;
- доступ к базам данных с помощью SQL (ODBC, MySQL, PostgreSQL, Oracle);
- QScintilla, основанный на Scintilla виджет текстового редактора;
- поддержку интернационализации (i18n);
- парсер XML;
- поддержку SVG;
- интеграцию с WebKit, движком рендеринга HTML;
- поддержку воспроизведения видео и аудио.
PyQt также включает в себя Qt Designer (Qt Creator) — дизайнер графического интерфейса пользователя. Программа pyuic генерирует Python код из файлов, созданных в Qt Designer.
Это делает PyQt очень полезным инструментом для быстрого прототипирования. Кроме того, можно добавлять новые графические элементы управления, написанные на Python, в Qt Designer.
Раньше PyQt поставлялся вместе со средой разработки Eric, написанной на PyQt. Eric имеет встроенный отладчик и может быть использована для создания консольных программ. Теперь она доступна в качестве отдельного проекта.
Содержание
- 1 Обзор основных модулей
- 2 Дизайнер графического интерфейса пользователя
- 3 Примеры программ
- 3.1 Программа Hello, world!
- 4 SIP
- 5 Особенности лицензирования
- 6 История
- 7 Известные программы, использующие PyQt
- 8 Применение
Обзор основных модулей
- QtCore — основные не графические классы: система сигналов и слотов, платформонезависимые абстракции для Unicode, потоков, разделяемой памяти, регулярных выражений и т. д.
- QtGui — компоненты графического интерфейса (элементы управления), основанные на визуальном представлении.
- QtNetwork — классы для сетевого программирования. Например, клиентов и серверов через UDP и TCP.
- QtOpenGL — классы, позволяющие использовать OpenGL и 3D-графику в приложениях PyQt.
- QtScript — классы, позволяющие использовать встроенный в Qt интерпретатор JavaScript для управления приложением.
- QtSql — классы для интеграции с базами данных с помощью SQL.
- QtSvg — классы для отображения векторной графики в формате SVG.
- QtXml — классы, реализующие обработку XML.
- uic — реализация обработки XML-файлов, созданных в Qt Designer, для генерации из них Python-кода графического интерфейса.
Дизайнер графического интерфейса пользователя
Создание простого веб-браузера перетаскиванием виджетовQt Designer является кросс-платформенным компоновщиком макетов и форм графического интерфейса пользователя.
Он позволяет быстро спроектировать виджеты и диалоги, используя экранные формы с использованием тех же виджетов, которые будут использоваться в приложении.
Формы, созданные с Qt Designer, являются полностью функциональными, а также могут быть просмотрены в режиме реального времени.
Примеры программ
Программа Hello, world!
Стандартный минималистичный пример, дающий представление о PyQt. Программа показывает пустое окно, обладающее базовыми функциями — изменение размера, сворачивание, разворачивание:
#! /usr/bin/env python2
# -*- coding: utf-8 -*-
#
import sys
from PyQt4.QtGui import * # компоненты интерфейса# Каждое приложение должно создать объект QApplication
# sys.argv — список аргументов командной строки
application = QApplication(sys.argv)# QWidget — базовый класс для всех объектов интерфейса
# пользователя; если использовать для виджета конструктор
# без родителя, такой виджет станет окном
widget = QWidget()widget.resize(320, 240) # изменить размеры виджета
widget.setWindowTitle(«Hello, World!») # установить заголовок
widget.show() # отобразить окно на экранеsys.exit(application.exec_()) # запуск основного цикла приложения
Результат выполнения программы в Linux с KDESIP
SIP — это инструмент для автоматической генерации Python-привязок к C и C++ библиотекам. Первоначально SIP был разработан в 1998 году для PyQt — Python-привязки для инструментария виджетов Qt, но подходит и для создания привязок к любым другим C или C++ библиотекам.
SIP берёт набор инструкций (.sip файлы), описывающих API и генерирует требуемый C++ код. Потом он компилируется и на выходе получается модуль Python. Файлы .sip — файлы заголовков класса, у которых кое-что убрано (потому что SIP не содержит полноценный C++-парсер) и кое-что добавлено (поскольку C++ не несёт достаточной информации о работе API).
Для PyQt4 используется внутренний инструмент (написанный на PyQt), называемый metasip. Это своего рода IDE для SIP. Он использует GCC-XML для разбора заголовочных файлов последней версии и сохраняет релевантные данные в XML, в metasip-проект. metasip далее делает некое подобие diff с предыдущей версией API и отмечает все изменения, которые необходимо просмотреть. Затем список изменений генерируется при помощи GUI и автоматически заносится в TODO. Создание .sip файлов — просто нажатие на кнопку.
Что касается работы сгенерированного кода, она не сильно отличается от работы любого другого генератора привязок. У Python очень хороший API модулей — это одна из причин большого количества Python-привязок для инструментов сторонних разработчиков. Для каждого C++-класса SIP генерирует C-код, создающий соответствующий Python-класс.
Особенности лицензирования
Двойная лицензия PyQt продиктована довольно сложными отношениями в сфере применения этой надстройки (привязки) над графической библиотекой Qt.
В соответствии с лицензией GPL, возможно использование библиотеки для создания программ с открытым исходным кодом. Если нет возможности распространять код в соответствии с условиями GPL, то можно приобрести коммерческую лицензию.
Со стороны Nokia были попытки договориться с Riverbank Computing на предмет смены лицензии, но они не увенчались успехом.
В результате возник проект под названием PySide — аналог PyQt, в том числе сохраняющий совместимость с последним на уровне API, но выпущенный под лицензией LGPL, чтобы дать возможность разработчикам и коммерческих проектов бесплатно использовать Python в связке с Qt.
Однако Riverbank не исключает возможности лицензирования PyQt под LGPL в будущем.
История
Riverbank Computing Limited с 1998 года разрабатывает и поддерживает PyQt, привязки, которые позволяют использовать Qt для работы с языком программирования Python.
- Разработка началась с создания SIP и выпуска PyQt 0.1 с поддержкой Qt 1.41 в ноябре 1998;
- в версии 2.0, которая вышла в 2000, реализована поддержка Qt 2.2 на Linux и Windows;
- поддержка Qt 3 реализована в 2001;
- поддержка Mac OS X реализована в 2002;
- выпуск PyQt4 начался с PyQt 4.0 с поддержкой Qt 4 в июне 2006;
- в версии 4.5, которая вышла 5 июня 2009, реализована поддержка Python 3;
- в версии 4.7, которая вышла 14 января 2010, реализована поддержка Qt 4.6;
- в версии 5.0, которая вышла 17 июня 2013, реализована поддержка Qt 5.0.
Известные программы, использующие PyQt
- Jabbim — кроссплатформенная открытая программа мгновенного обмена сообщениями по протоколу XMPP.
- Eric IDE — интегрированная среда разработки для Python;
- Kodos — отладчик регулярных выражений Python.
- GNS3 — графический симулятор сети.
- Anki — программа для облегчения запоминания слов, выражений и любой другой информации с помощью интервальных повторений.
Применение
PyQt — продукт, имеющий широкую пользовательскую базу. Среди коммерческих пользователей PyQt можно отметить такие известные корпорации, как Disney, Dreamworks, Pixar, Industrial Light and Magic и Sony Pictures. Всего коммерческих пользователей более 200 (по данным в 2006 году).
В состав PyQt включён модуль QtSql, который содержит классы для интеграции с базами данных с помощью SQL.
Приглашаю всех высказываться в Комментариях. Критику и обмен опытом одобряю и приветствую. В хороших комментариях сохраняю ссылку на сайт автора!
И не забывайте, пожалуйста, нажимать на кнопки социальных сетей, которые расположены под текстом каждой страницы сайта.
Продолжение тут…