Spec-Zone.ru › Matplotlib

matplotlib.backends.backend_qtagg, matplotlib.backends.backend_qtcairo

ПРИМЕЧАНИЕ Эти бэкенды здесь не документируются автоматически, чтобы не добавлять зависимость при сборке документации.

Привязки Qt

В настоящее время активно поддерживаются 2 версии Qt: Qt5 и Qt6, а для каждой версии — две привязки для Python: PyQt5 и PySide2 для Qt5 и PyQt6 и PySide6 для Qt6 [1]. Бэкенды qtagg и qtcairo Matplotlib (matplotlib.backends.backend_qtagg и matplotlib.backend.backend_qtcairo) поддерживают все эти привязки; общие компоненты вынесены в модуль matplotlib.backends.backend_qt.

Во время выполнения эти бэкенды выбирают используемую привязку следующим образом:

  1. Если подмодуль QtCore какой-либо привязки уже импортирован, выбирается эта привязка (порядок проверки: PyQt6, PySide6, PyQt5, PySide2).
  2. Если для переменной среды QT_API задано одно из значений «PyQt6», «PySide6», «PyQt5», «PySide2» (без учёта регистра), выбирается соответствующая привязка. (См. также документацию о переменных среды.)
  3. В противном случае выбирается первый доступный бэкенд в следующем порядке: PyQt6, PySide6, PyQt5, PySide2.

Ранее в Matplotlib были отдельные бэкенды для каждой версии Qt (например, qt4agg/matplotlib.backends.backend_qt4agg и qt5agg/matplotlib.backends.backend_qt5agg). Эта схема была отменена при добавлении поддержки Qt6. Для обратной совместимости qt5agg/backend_qt5agg и qt5cairo/backend_qt5cairo по-прежнему доступны; выбор одного из этих бэкендов принудительно использует привязку Qt5. Их использование не рекомендуется: вместо них следует предпочесть backend_qtagg или backend_qtcairo. Однако эти модули не будут объявлены устаревшими, пока не будет прекращена поддержка Qt5.

Хотя PyQt и Qt for Python (также известный как PySide) очень точно повторяют базовый API C++, для которого они служат обёртками, они не являются взаимозаменяемыми [2]. Чтобы учесть это, в Matplotlib предусмотрен внутренний слой совместимости API matplotlib.backends.qt_compat, покрывающий наши потребности. Хотя это общедоступный модуль, мы не считаем его стабильным API для пользователей, и он может измениться без предупреждения [3].

[1]

Для Qt4 также существуют PyQt4 и PySide, однако Matplotlib больше не поддерживает их, а поддержка Qt4 в исходном проекте завершилась в 2015 году.

[2]

Несмотря на незначительные различия в API, наиболее важное различие между сериями привязок PyQt и Qt for Python заключается в лицензировании.

[3]

Если вам нужна универсальная библиотека совместимости, см. qtpy.

© 2012–2026 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/stable/api/backend_qt_api.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API