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.
Во время выполнения эти бэкенды выбирают используемую привязку следующим образом:
- Если подмодуль
QtCoreкакой-либо привязки уже импортирован, выбирается эта привязка (порядок проверки:PyQt6,PySide6,PyQt5,PySide2). - Если для переменной среды
QT_APIзадано одно из значений «PyQt6», «PySide6», «PyQt5», «PySide2» (без учёта регистра), выбирается соответствующая привязка. (См. также документацию о переменных среды.) - В противном случае выбирается первый доступный бэкенд в следующем порядке:
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].
© 2012–2026 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/stable/api/backend_qt_api.html