PyQt
![]() | |
![]() | |
Разработчик(и) | Ривербанк Вычисления |
---|---|
Первоначальный выпуск | 1998 |
Стабильная версия | 6.7.0 [1] ![]() |
Написано в | С++ / Питон [2] |
Операционная система | Кросс-платформенный |
Лицензия | GNU GPL и коммерческая |
Веб-сайт | riverbankcomputing.com |
PyQt — это Python- набора инструментов привязка кроссплатформенного Qt GUI , реализованная в виде плагина Python . PyQt — бесплатное программное обеспечение , разработанное британской фирмой Riverbank Computing. Он доступен на тех же условиях, что и версии Qt старше 4.5; это означает различные лицензии, включая GNU General Public License (GPL) и коммерческую лицензию, но не GNU Lesser General Public License (LGPL). [3] PyQt поддерживает Microsoft Windows , а также различные виды UNIX , включая Linux и MacOS (или Darwin) . [4]
PyQt реализует около 440 классов и более 6000 функций и методов. [5] включая:
- значительный набор виджетов графического интерфейса
- классы для доступа к SQL базам данных ( ODBC , MySQL , PostgreSQL , Oracle , SQLite ) [6]
- QScintilla, Scintilla виджет редактора форматированного текста на основе
- виджеты с поддержкой данных, которые автоматически заполняются из базы данных
- парсер XML -
- SVG Поддержка
- классы для встраивания элементов управления ActiveX в Windows (только в коммерческой версии) [7]
Для автоматического создания этих привязок Фил Томпсон разработал инструмент SIP , который также используется в других проектах.
История
[ редактировать ]PyQt был впервые выпущен компанией Riverbank Computing в 1998 году. [8]
В августе 2009 года Nokia потребовала, чтобы привязка Python была доступна по лицензии LGPL . В то время Nokia владела Qt Software , разработчиком QT. Не сумев достичь соглашения с Riverbank Computing, Nokia выпустила свою привязку PySide , обеспечивающую аналогичную функциональность. [9]
Основные компоненты
[ редактировать ]
PyQt4 содержит следующие модули Python.
- Модуль QtCore содержит основные классы, не относящиеся к графическому интерфейсу, включая цикл событий и механизм сигналов и слотов Qt. Он также включает в себя независимые от платформы абстракции для Unicode , потоков, отображаемых файлов, общей памяти , регулярных выражений , а также настроек пользователя и приложения.
- Модуль QtGui содержит большинство классов графического интерфейса. К ним относятся ряд классов таблиц, деревьев и списков, основанных на шаблоне проектирования модель-представление-контроллер . Также предоставляется сложный виджет 2D- холста, способный хранить тысячи элементов, включая обычные виджеты.
- Модуль QtNetwork содержит классы для написания клиентов и серверов UDP и TCP . Он включает классы, реализующие FTP- и HTTP- клиенты и поддерживающие поиск DNS . Сетевые события интегрированы в цикл событий, что упрощает разработку сетевых приложений.
- Модуль QtOpenGL содержит классы, которые позволяют использовать OpenGL при рендеринге 3D- графики в приложениях PyQt.
- Модуль QtSql содержит классы, которые интегрируются с открытыми и собственными базами данных SQL. Он включает редактируемые модели данных для таблиц базы данных, которые можно использовать с классами графического интерфейса. Он также включает реализацию SQLite .
- Модуль QtSvg содержит классы для отображения содержимого файлов SVG. Он поддерживает статические функции SVG 1.2 Tiny.
- Модуль QtXml реализует интерфейсы SAX и DOM для анализатора XML Qt.
- Модуль 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]
Привет, мир, пример
[ редактировать ]
Приведенный ниже код, написанный для PyQt6, показывает небольшое окно на экране.
#!/usr/bin/env python3
"""
Here we provide the necessary imports.
The basic GUI widgets are located in QtWidgets module.
"""
import sys
from PyQt6.QtWidgets import QApplication, QWidget
# Every PyQt application must create an application object.
# The application object is located in the QtWidgets module.
app = QApplication([])
# The QWidget widget is the base class of all user interface objects in PyQt.
# We provide the default constructor for QWidget. The default constructor has no parent.
# A widget with no parent is called a window.
root = QWidget()
root.resize(320, 240) # The resize() method resizes the widget.
root.setWindowTitle("Hello, World!") # Here we set the title for our window.
root.show() # The show() method displays the widget on the screen.
sys.exit(app.exec()) # Finally, we enter the mainloop of the application.
Известные приложения, использующие PyQt
[ редактировать ]- Anki , программа для карточек с интервальным повторением
- Caliber , приложение для управления электронными книгами
- Dropbox — файловый хостинг
- Эрик Питон IDE
- Frescobaldi , редактор партитур для LilyPond . музыкальных файлов
- Kodos, Python регулярных выражений отладчик
- Лео , планировщик и грамотный редактор программирования
- Ninja-IDE — расширяемая Python с открытым исходным кодом. среда разработки
- OpenLP — программа проецирования текстов песен с открытым исходным кодом.
- OpenShot — программа для редактирования видео.
- Orange — платформа для интеллектуального анализа и визуализации данных.
- Puddletag — кроссплатформенный редактор тегов ID3 с открытым исходным кодом.
- QGIS — бесплатное настольное приложение географических информационных систем (ГИС).
- qutebrowser — веб-браузер с привязками клавиш в стиле Vim и минимальным графическим интерфейсом.
- qt-recordMyDesktop , интерфейс Qt4 для RecordMyDesktop
- Spyder — Python . интегрированная среда разработки для обработки данных
- TortoiseHg — графический интерфейс для программы управления исходным кодом Mercurial (Hg).
- Veusz , приложение для построения научных графиков
- GNS3 , эмулятор сетевого программного обеспечения.
См. также
[ редактировать ]
- PyGTK (обертки Python для GTK)
- PySide (альтернативная оболочка Python для набора инструментов Qt)
- wxPython (оболочка Python для коллекции виджетов wx)
- Отчаянный
- Tkinter (в комплекте с Python)
Ссылки
[ редактировать ]- ^ «Выпущен PyQt v6.7.0» .
- ^ «Загрузка PyQt4» . Ривербанккомпьютинг. 2010 . Проверено 19 апреля 2010 г.
- ^ «Ривербанк | Коммерческий | Часто задаваемые вопросы по лицензии» . Riverbankcomputing.com . Проверено 24 июня 2015 г.
- ^ Перейти обратно: а б «Что такое PyQt?» . Ривербанк Вычисления . Проверено 18 сентября 2014 г.
- ^ «PyQt v4 — привязки Python для Qt v4» . Ривербанккомпьютинг. Архивировано из оригинала 29 апреля 2008 г. Проверено 17 апреля 2010 г.
- ^ «Справочник по классу QSqlDatabase» . Pyqt.sourceforge.net . Проверено 25 сентября 2014 г.
- ^ PythonInfo Wiki
- ^ Ярмул, Кэтрин; Лоусон, Ричард (30 мая 2017 г.). Веб-скрапинг Python . Packt Publishing Ltd. с. 105. ИСБН 978-1-78646-429-3 .
- ^ часто задаваемые вопросы, Мартин Фитцпатрик Последнее обновление (21 июня 2019 г.). «PyQt5 против PySide2: в чем разница между двумя библиотеками Python Qt?» . Графические интерфейсы Python . Проверено 25 июня 2022 г.
- ^ «Ривербанк | Программное обеспечение | PyQt | Что такое PyQt?» . Riverbankcomputing.co.uk . Проверено 15 апреля 2010 г.
- ^ «Различия между PyQt4 и PyQt5» , Справочное руководство PyQt 5.3.2 , заархивировано из оригинала 14 августа 2018 г. , получено 18 сентября 2014 г.
Дальнейшее чтение
[ редактировать ]- Уиллман, Джошуа (2020), Начало PyQt — практический подход к программированию с графическим интерфейсом (1-е изд.), Apress , стр. 440, ISBN 978-1-4842-5856-9
- Саммерфилд, Марк (28 октября 2007 г.), Быстрое программирование графического пользовательского интерфейса с помощью Python и Qt (охватывает PyQt4) (1-е изд.), Prentice Hall , стр. 648, ISBN 978-0-13-235418-9
- Ремпт, Боудевейн (2002), Программирование графического пользовательского интерфейса на Python: QT Edition (охватывает PyQt3) , OpenDocs, заархивировано из оригинала 9 апреля 2010 г.
Внешние ссылки
[ редактировать ]- Кроссплатформенное бесплатное программное обеспечение
- Бесплатные компьютерные библиотеки
- Бесплатное программное обеспечение, написанное на C++.
- Бесплатное программное обеспечение, написанное на Python.
- Библиотеки Python (языка программирования)
- Qt (программное обеспечение)
- Наборы инструментов для виджетов