Разработчики) | Riverbank Computing |
---|---|
Стабильный выпуск | 5.15.4 / 10 марта 2021 г . [1] |
Написано в | C ++ / Python [2] |
Операционная система | Кроссплатформенность |
Лицензия | GNU GPL и коммерческая |
Веб-сайт | riverbankcomputing.com |
PyQt - это привязка Python к кроссплатформенному набору инструментов графического интерфейса Qt , реализованная как подключаемый модуль Python . PyQt - бесплатное программное обеспечение, разработанное британской фирмой Riverbank Computing. Он доступен на условиях, аналогичных версиям Qt старше 4.5; это означает множество лицензий, включая Стандартную общественную лицензию GNU (GPL) и коммерческую лицензию, но не Стандартную общественную лицензию ограниченного применения GNU (LGPL). [3] PyQt поддерживает Microsoft Windows, а также различные разновидности UNIX , включая Linux и MacOS (или Дарвин) . [4]
PyQt реализует около 440 классов и более 6000 функций и методов [5], включая:
- существенный набор виджетов GUI
- классы для доступа к базам данных SQL ( ODBC , MySQL , PostgreSQL , Oracle , SQLite ) [6]
- QScintilla, виджет редактора форматированного текста на основе Scintilla
- виджеты с поддержкой данных, которые автоматически заполняются из базы данных
- XML парсер
- Поддержка SVG
- классы для встраивания элементов управления ActiveX в Windows (только в коммерческой версии) [7]
Для автоматической генерации этих привязок Фил Томпсон разработал инструмент SIP , который также используется в других проектах.
В августе 2009 года , Nokia , тогдашние владельцы инструментария Qt, выпущенный PySide , обеспечивая аналогичные функциональные возможности , но под LGPL , [8] , не сумев достичь соглашения с Ривербанком Computing [9] , чтобы изменить свои условия лицензирования для включения LGPL , как альтернативная лицензия.
Основные компоненты PyQt [ править ]
PyQt4 содержит следующие модули Python.
- Модуль QtCore содержит основные классы, не относящиеся к графическому интерфейсу пользователя, включая цикл событий и механизм сигналов и слотов Qt. Он также включает независимые от платформы абстракции для Unicode , потоков, сопоставленных файлов, общей памяти, регулярных выражений , а также параметров пользователя и приложения.
- Модуль QtGui содержит большинство классов GUI. К ним относятся несколько классов таблиц, деревьев и списков, основанных на шаблоне проектирования модель – представление – контроллер . Также предоставляется сложный виджет 2D- холста, способный хранить тысячи элементов, включая обычные виджеты.
- Модуль QtNetwork содержит классы для написания клиентов и серверов UDP и TCP . Он включает классы, которые реализуют FTP- и HTTP- клиентов и поддерживают поиск в DNS . Сетевые события интегрированы с циклом событий, что упрощает разработку сетевых приложений.
- Модуль QtOpenGL содержит классы, которые позволяют использовать OpenGL при рендеринге 3D- графики в приложениях PyQt.
- Модуль QtSql содержит классы, которые интегрируются с открытыми и проприетарными базами данных SQL. Он включает редактируемые модели данных для таблиц базы данных, которые можно использовать с классами графического интерфейса. Он также включает реализацию SQLite .
- Модуль QtSvg содержит классы для отображения содержимого файлов SVG. Он поддерживает статические функции SVG 1.2 Tiny.
- Модуль QtXml реализует интерфейсы SAX и DOM для синтаксического анализатора Qt XML.
- Модуль QtMultimedia реализует низкоуровневую мультимедийную функциональность. Разработчики приложений обычно используют модуль phonon .
- Модуль QtDesigner содержит классы, которые позволяют расширять Qt Designer с помощью PyQt.
- Модуль Qt объединяет классы, содержащиеся во всех модулях, описанных выше, в один модуль. Это имеет то преимущество, что вам не нужно беспокоиться о том, какой базовый модуль содержит конкретный класс. Его недостаток заключается в том, что он загружает всю структуру Qt, тем самым увеличивая объем памяти, занимаемый приложением. Независимо от того, используете ли вы этот консолидированный модуль или отдельные компоненты, зависит от вашего вкуса.
- Модуль uic реализует поддержку обработки XML-файлов, созданных Qt Designer, которые описывают весь или часть графического пользовательского интерфейса. Он включает классы, которые загружают XML-файл и обрабатывают его напрямую, а также классы, которые генерируют код Python из XML-файла для последующего выполнения. [10]
PyQt5 содержит следующие модули Python:
- Модуль QtQml
- Модуль QtQtuick
- Модуль QtCore
- Модуль QtGui
- Модуль QtPrintSupport
- Модуль QtWidgets
- Модуль QGLContext
- Модуль QGLFormat
- Модуль QGLWidget
- Модуль QtWebKit
- Модуль QtWebKitWidgets
Версии [ править ]
PyQt версии 4 работает как с Qt 4, так и с Qt 5 . PyQt версии 5 поддерживает только Qt версии 5, [4] и отказывается от поддержки функций, которые не рекомендуются в Qt 5. [11]
Пример Hello World [ править ]
В приведенном ниже коде показано небольшое окно на экране.
PyQt4 [ править ]
#! / usr / bin / env python3# Кодировка символов: UTF-8## Здесь мы обеспечиваем необходимый импорт.# Основные виджеты графического интерфейса расположены в модуле QtGui. import sysиз PyQt4.QtGui импорт QApplication , QWidget# Каждое приложение PyQt4 должно создавать объект приложения.# Объект приложения находится в модуле QtGui.приложение = QApplication ( SYS . ARGV )# Виджет QWidget - это базовый класс всех объектов пользовательского интерфейса в PyQt4.# Мы предоставляем конструктор по умолчанию для QWidget. Конструктор по умолчанию не имеет родителя.# Виджет без родителя называется окном. корень = QWidget ()корень . resize ( 320 , 240 ) # Метод resize () изменяет размер виджета.корень . setWindowTitle ( "Hello, World!" ) # Здесь мы устанавливаем заголовок для нашего окна.корень . show () # Метод show () отображает виджет на экране.sys . exit ( app . exec_ ()) # Наконец, мы входим в основной цикл приложения.
PyQt5 [ править ]
#! / usr / bin / env python3# Кодировка символов: UTF-8## Здесь мы обеспечиваем необходимый импорт.# Основные виджеты GUI расположены в модуле QtWidgets. import sysиз PyQt5.QtWidgets импортировать QApplication , QWidget# Каждое приложение PyQt5 должно создавать объект приложения.# Объект приложения находится в модуле QtWidgets.приложение = QApplication ( SYS . ARGV )# Виджет QWidget - это базовый класс всех объектов пользовательского интерфейса в PyQt5.# Мы предоставляем конструктор по умолчанию для QWidget. Конструктор по умолчанию не имеет родителя.# Виджет без родителя называется окном. корень = QWidget ()корень . resize ( 320 , 240 ) # Метод resize () изменяет размер виджета.корень . setWindowTitle ( "Hello, World!" ) # Здесь мы устанавливаем заголовок для нашего окна.корень . show () # Метод show () отображает виджет на экране.sys . exit ( app . exec_ ()) # Наконец, мы входим в основной цикл приложения.
Известные приложения, использующие PyQt [ править ]
- Anki , программа для карточек с интервальным повторением
- Caliber , приложение для управления электронными книгами
- Dropbox , служба хостинга файлов
- Эрик Python IDE
- fman , кроссплатформенный файловый менеджер
- Фрескобальди , редактор нот для музыкальных файлов LilyPond
- Kodos , отладчик регулярных выражений Python
- Лео , планировщик и грамотный редактор программирования
- Ninja-IDE , расширяемая IDE Python с открытым исходным кодом
- OpenLP , программа для проецирования текстов песен с открытым исходным кодом
- OpenShot , программа для редактирования видео
- Orange , фреймворк для интеллектуального анализа данных и визуализации
- Puddletag , кроссплатформенный редактор тегов ID3 с открытым исходным кодом.
- QGIS , бесплатное настольное приложение для географических информационных систем (ГИС)
- qt-recordMyDesktop , интерфейс Qt4 для recordMyDesktop
- Spyder , IDE для обработки данных Python
- TortoiseHg , графический интерфейс для программы управления исходным кодом Mercurial (Hg)
- Veusz , приложение для научного построения графиков
См. Также [ править ]
PyQt - это один из вариантов Python для программирования с графическим интерфейсом. Популярными альтернативами являются PySide (привязка Qt с официальной поддержкой и более либеральной лицензией), PyGTK , wxPython , Kivy и Tkinter (который входит в комплект Python).
Викискладе есть медиафайлы по теме PyQt . |
Ссылки [ править ]
- ^ https://pypi.org/project/PyQt5/#history
- ^ "PyQt4 Download" . Riverbankcomputing. 2010 . Проверено 19 апреля 2010 .
- ^ "Riverbank | Коммерческий | Часто задаваемые вопросы о лицензиях" . Riverbankcomputing.com . Проверено 24 июня 2015 .
- ^ a b "Что такое PyQt?" . Речные вычисления . Проверено 18 сентября 2014 .
- ^ «PyQt v4 - привязки Python для Qt v4» . Riverbankcomputing. Архивировано из оригинала на 2008-04-29 . Проверено 17 апреля 2010 .
- ^ "Описание класса QSqlDatabase" . Pyqt.sourceforge.net . Проверено 25 сентября 2014 .
- ^ PythonInfo Wiki
- ^ «Выпущен PySide - PySide - Python для Qt» . Pyside.org. 2009-08-18. Архивировано из оригинала на 2009-10-25 . Проверено 3 сентября 2009 .
- ^ «FAQ - PySide - Python для Qt» . Pyside.org . Проверено 3 сентября 2009 .
- ^ "Riverbank | Программное обеспечение | PyQt | Что такое PyQt?" . Riverbankcomputing.co.uk . Проверено 15 апреля 2010 .
- ^ «Различия между PyQt4 и PyQt5» , Справочное руководство PyQt 5.3.2
Дальнейшее чтение [ править ]
- Уиллман, Джошуа (2020 г.), Начало PyQt - практический подход к программированию графического интерфейса пользователя (1-е изд.), Apress , стр. 440, ISBN 978-1-4842-5856-9
- Саммерфилд, Марк (28 октября 2007 г.), Быстрое программирование графического интерфейса пользователя с помощью Python и Qt (охватывает PyQt4) (1-е изд.), Прентис Холл , стр. 648, ISBN 978-0-13-235418-9
- Rempt, Boudewijn (2002), графический интерфейс программирования с Python: QT Edition (Covers PyQt3) , OpenDocs, архивируются с оригинала на 2010-04-09
Внешние ссылки [ править ]
- Официальный веб-сайт
- Вики Сообщества PyQt и PyKDE
- PyQt5 Серия учебных пособий
- Серия руководств PyQT4
- Учебники
- Руководство