PyQt - это набор привязок Python v2 и v3 для платформы приложений Qt компании Qt и работает на всех платформах, поддерживаемых Qt, включая Windows, macOS, Linux, iOS и Android.

Компоненты PyQt

PyQt4 содержит следующие модули Python.

  • Модуль QtCore содержит основные классы, не относящиеся к графическому интерфейсу пользователя, включая цикл событий и механизм сигналов и слотов Qt. Он также включает независимые от платформы абстракции для Unicode, потоков, сопоставленных файлов, общей памяти, регулярных выражений и настроек пользователя и приложения.

  • Модуль QtGui содержит большинство классов GUI. Они включают в себя несколько классов таблиц, деревьев и списков, основанных на шаблоне проектирования модель-представление-контроллер. Также предоставляется сложный виджет 2D-холста, способный хранить тысячи элементов, включая обычные виджеты.

  • Модуль QtHelp содержит классы для создания и просмотра документации с возможностью поиска и возможности интеграции онлайн-справки с приложениями PyQt. Он основан на порте C++ системы текстового поиска Lucene.

  • Модуль QtNetwork содержит классы для написания клиентов и серверов UDP и TCP. Он включает классы, которые реализуют FTP- и HTTP-клиентов и поддерживают поиск в DNS. Сетевые события интегрированы с циклом событий, что упрощает разработку сетевых приложений. Модуль QtOpenGL содержит классы, которые позволяют использовать OpenGL для рендеринга 3D-графики в приложениях PyQt.

  • Модуль QtScript содержит классы, которые позволяют создавать сценарии приложений PyQt с использованием интерпретатора Qt JavaScript.

  • Модуль QtSql содержит классы, которые интегрируются с открытыми и проприетарными базами данных SQL. Он включает редактируемые модели данных для таблиц базы данных, которые можно использовать с классами графического интерфейса. Он также включает реализацию SQLite.

  • Модуль QtSvg содержит классы для отображения содержимого файлов SVG. Он поддерживает статические функции SVG 1.2 Tiny.

  • Модуль QtTest содержит функции, позволяющие модульное тестирование приложений PyQt. PyQt не реализует полную структуру модульного тестирования Qt. Вместо этого он предполагает, что будет использоваться стандартная среда модульного тестирования Python, и реализует те функции, которые имитируют взаимодействие пользователя с графическим интерфейсом.

  • Модуль QtWebKit реализует движок веб-браузера, основанный на движке браузера с открытым исходным кодом WebKit, который используется в Safari от Apple. Он позволяет публиковать методы и свойства объектов Python и отображать их как объекты JavaScript в сценариях, встроенных в страницы HTML.

  • Модуль QtXml реализует интерфейсы SAX и DOM для синтаксического анализатора Qt XML.

  • Модуль QtXmlPatterns реализует поддержку XQuery и XPath для XML и пользовательских моделей данных.

  • Модуль phonon реализует мультимедийную структуру, которая позволяет использовать аудио и видео контент в приложениях PyQt. В Windows DirectX используется как серверная часть, в MacOS/X QuickTime используется как серверная часть, а в Linux GStreamer используется как серверная часть.

  • Модуль QtMultimedia реализует мультимедийные функции низкого уровня. Разработчики приложений обычно используют модуль phonon.

  • Модуль QtAssistant реализует простой интерфейс для интеграции QtAssistant с приложениями PyQt для предоставления онлайн-справки. Сам QtAssistant реализован с использованием QtHelp.

  • Модуль QtDesigner содержит классы, которые позволяют расширять QtDesigner с помощью PyQt.

  • Модуль QAxContainer реализует доступ к элементам управления ActiveX и COM-объектам. Он доступен только в коммерческой версии PyQt для Windows.

  • Модуль Qt объединяет классы, содержащиеся во всех модулях, описанных выше, в один модуль. Это имеет то преимущество, что вам не нужно беспокоиться о том, какой базовый модуль содержит конкретный класс. Его недостаток заключается в том, что он загружает всю структуру Qt, тем самым увеличивая объем памяти, занимаемый приложением. Независимо от того, используете ли вы этот консолидированный модуль или отдельные компоненты, зависит от вашего вкуса.

  • DBus модуль поддержки устанавливается как dbus.mainloop.qt. PyQt не поддерживает собственные классы Qt DBus. Вместо этого модуль позволяет использовать цикл событий Qt со стандартными привязками DBus Python. Он доступен только для PyQt для X11.

  • Модуль uic реализует поддержку обработки файлов XML, созданных QtDesigner, которые описывают весь или часть графического пользовательского интерфейса. Он включает классы, которые загружают XML-файл и визуализируют его напрямую, и классы, которые генерируют код Python из XML-файла для последующего выполнения.

Документация PyQt

Текущая документация доступна для PyQt4 и PyQt5.

Книги о PyQt

Список руководств

IDE для PYQT