Jump to content

PyQt

PyQt
Разработчик(и) Ривербанк Вычисления
Первоначальный выпуск 1998
Стабильная версия
6.7.0 [1]  Отредактируйте это в Викиданных / 26 апреля 2024 г .; 3 месяца назад ( 26 апреля 2024 г. )
Написано в С++ / Питон [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] включая:

Для автоматического создания этих привязок Фил Томпсон разработал инструмент SIP , который также используется в других проектах.

PyQt был впервые выпущен компанией Riverbank Computing в 1998 году. [8]

В августе 2009 года Nokia потребовала, чтобы привязка Python была доступна по лицензии LGPL . В то время Nokia владела Qt Software , разработчиком QT. Не сумев достичь соглашения с Riverbank Computing, Nokia выпустила свою привязку PySide , обеспечивающую аналогичную функциональность. [9]

Основные компоненты

[ редактировать ]
Альтернативный логотип PyQt

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]

Привет, мир, пример

[ редактировать ]
Результат в KDE Plasma 4

Приведенный ниже код, написанный для 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)
  1. ^ «Выпущен PyQt v6.7.0» .
  2. ^ «Загрузка PyQt4» . Ривербанккомпьютинг. 2010 . Проверено 19 апреля 2010 г.
  3. ^ «Ривербанк | Коммерческий | Часто задаваемые вопросы по лицензии» . Riverbankcomputing.com . Проверено 24 июня 2015 г.
  4. ^ Перейти обратно: а б «Что такое PyQt?» . Ривербанк Вычисления . Проверено 18 сентября 2014 г.
  5. ^ «PyQt v4 — привязки Python для Qt v4» . Ривербанккомпьютинг. Архивировано из оригинала 29 апреля 2008 г. Проверено 17 апреля 2010 г.
  6. ^ «Справочник по классу QSqlDatabase» . Pyqt.sourceforge.net . Проверено 25 сентября 2014 г.
  7. ^ PythonInfo Wiki
  8. ^ Ярмул, Кэтрин; Лоусон, Ричард (30 мая 2017 г.). Веб-скрапинг Python . Packt Publishing Ltd. с. 105. ИСБН  978-1-78646-429-3 .
  9. ^ часто задаваемые вопросы, Мартин Фитцпатрик Последнее обновление (21 июня 2019 г.). «PyQt5 против PySide2: в чем разница между двумя библиотеками Python Qt?» . Графические интерфейсы Python . Проверено 25 июня 2022 г.
  10. ^ «Ривербанк | Программное обеспечение | PyQt | Что такое PyQt?» . Riverbankcomputing.co.uk . Проверено 15 апреля 2010 г.
  11. ^ «Различия между PyQt4 и PyQt5» , Справочное руководство PyQt 5.3.2 , заархивировано из оригинала 14 августа 2018 г. , получено 18 сентября 2014 г.

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 3de8a8798bfc565d092e04d2db5940cd__1710178920
URL1:https://arc.ask3.ru/arc/aa/3d/cd/3de8a8798bfc565d092e04d2db5940cd.html
Заголовок, (Title) документа по адресу, URL1:
PyQt - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)