Spec-Zone.ru › Matplotlib 3.6

backend_qtagg, backend_qtcairo

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

Связывания Qt

В настоящее время поддерживаются две активно используемые версии Qt, Qt5 и Qt6, и две поддерживаемые Python-связывания для каждой версии — PyQt5 и PySide2 для Qt5 и PyQt6 и PySide6 для Qt6 [1]. Хотя PyQt и Qt for Python (также известный как PySide) тесно отражают лежащий в основе C++ API, который они оборачивают, они не являются взаимозаменяемыми [2]. Для учета этого Matplotlib имеет внутренний слой совместимости API в matplotlib.backends.qt_compat, который покрывает наши потребности. Несмотря на то, что это общедоступный модуль, мы не считаем его стабильным пользовательским API, и он может изменяться без предварительного уведомления [3].

Ранее бэкэнды Qt Matplotlib имели номер версии Qt в названии, как в модуле, так и в значении rcParams["backend"] (например, matplotlib.backends.backend_qt4agg и matplotlib.backends.backend_qt5agg). Однако в процессе добавления поддержки Qt6 нам удалось поддерживать как Qt5, так и Qt6 с одной реализацией, при этом вся поддержка версий Qt и связывания обрабатывается в qt_compat. Большая часть кода Qt, не зависящего от рендерера, теперь находится в matplotlib.backends.backend_qt со специализацией для AGG в backend_qtagg и cairo в backend_qtcairo.

Связывание выбирается во время выполнения на основе уже импортированных связываний (путем проверки наличия QtCore подпакета), затем переменной среды QT_API, и, наконец, rcParams["backend"]. Во всех случаях, когда нам нужно искать, порядок PyQt6, PySide6, PyQt5, PySide2. См. Как выбрать реализацию Qt? для инструкций по использованию.

backend_qt5, backend_qt5agg, и backend_qt5cairo предоставляются и принуждают к использованию связывания Qt5 для обеспечения обратной совместимости. Их использование не рекомендуется (но не устарело), и следует предпочесть backend_qt, backend_qtagg, или backend_qtcairo. Однако эти модули не будут устаревшими, пока мы не прекратим поддержку Qt5.

[1]

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

[2]

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

[3]

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

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

Spec-Zone.ru

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