backend_qtagg, #backend_qtcairo

注意这些后端没有(自动)在这里记录,以避免在构建文档时添加依赖项。

Qt 绑定#

目前有 2 个积极支持的 Qt 版本,Qt5 和 Qt6,每个版本支持两个 Python 绑定——Qt5的 PyQt5 和PySide2以及Qt6PyQt6和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_qt4aggmatplotlib.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_qt5aggbackend_qt5cairo并强制使用 Qt5 绑定以实现向后兼容性。不鼓励(但不反对)使用它们,并且应该优先使用backend_qt, backend_qtagg, or 。backend_qtcairo但是,在我们放弃对 Qt5 的支持之前,这些模块不会被弃用。