backend_qtagg
, #backend_qtcairo
注意这些后端没有(自动)在这里记录,以避免在构建文档时添加依赖项。
Qt 绑定#
目前有 2 个积极支持的 Qt 版本,Qt5 和 Qt6,每个版本支持两个 Python 绑定——Qt5的 PyQt5 和PySide2以及Qt6的PyQt6和PySide6 [ 1 ]。虽然 PyQt 和 Qt for Python(又名 PySide)都密切反映了它们所封装的底层 C++ API,但它们并不是彼此的直接替代品[ 2 ]。为了解决这个问题,Matplotlib 有一个内部 API 兼容层,
可以满足我们的需求。尽管是一个公共模块,但我们不认为这是一个稳定的面向用户的 API,它可能会在没有警告的情况下更改[ 3 ]。matplotlib.backends.qt_compat
以前 Matplotlib 的 Qt 后端在名称中包含 Qt 版本号,包括模块和rcParams["backend"]
值(例如matplotlib.backends.backend_qt4agg
和
matplotlib.backends.backend_qt5agg
)。然而,作为添加对 Qt6 支持的一部分,我们能够通过单个实现同时支持 Qt5 和 Qt6,其中所有 Qt 版本和绑定支持都在
qt_compat
. 大多数与渲染器无关的 Qt 代码现在都matplotlib.backends.backend_qt
专门用于 AGG in
backend_qtagg
和 cairo in backend_qtcairo
.
绑定是在运行时根据已经导入的绑定(通过检查QtCore
子包)选择的,然后由QT_API
环境变量,最后由rcParams["backend"]
. 在所有需要搜索的情况下,顺序都是PyQt6
, PySide6
, PyQt5
, PySide2
。请参阅如何选择 Qt 实现?使用说明。
提供backend_qt5
,backend_qt5agg
和backend_qt5cairo
并强制使用 Qt5 绑定以实现向后兼容性。不鼓励(但不反对)使用它们,并且应该优先使用backend_qt
, backend_qtagg
, or
。backend_qtcairo
但是,在我们放弃对 Qt5 的支持之前,这些模块不会被弃用。