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) тесно отражают лежащий в основе C++ API, который они оборачивают, они не являются взаимозаменяемыми [2]. Для учета этого Matplotlib имеет внутренний API-слой совместимости в matplotlib.backends.qt_compat, который охватывает наши потребности. Несмотря на то, что это общедоступный модуль, мы не считаем его стабильным API для конечного пользователя, и он может меняться без предупреждения [3].
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.7.5/api/backend_qt_api.html