backend_qtagg
, #backend_qtcairo
REMARQUE Ces backends ne sont pas (auto) documentés ici, pour éviter d'ajouter une dépendance à la construction des docs.
Liaisons Qt #
Il existe actuellement 2 versions Qt activement prises en charge, Qt5 et Qt6, et deux liaisons Python prises en charge par version - PyQt5 et PySide2 pour Qt5 et PyQt6 et PySide6 pour Qt6 [ 1 ] . Bien que PyQt et Qt pour Python (alias PySide) reflètent étroitement l'API C++ sous-jacente qu'ils encapsulent, ils ne se remplacent pas l'un l'autre [ 2 ] . Pour tenir compte de cela, Matplotlib dispose d'une couche de compatibilité API interne
matplotlib.backends.qt_compat
qui couvre nos besoins. Bien qu'il s'agisse d'un module public, nous ne considérons pas qu'il s'agit d'une API stable destinée à l'utilisateur et elle peut changer sans avertissement [ 3 ] .
Auparavant, les backends Qt de Matplotlib avaient le numéro de version de Qt dans le nom, à la fois dans le module et dans la rcParams["backend"]
valeur (par exemple matplotlib.backends.backend_qt4agg
et
matplotlib.backends.backend_qt5agg
). Cependant, dans le cadre de l'ajout de la prise en charge de Qt6, nous avons pu prendre en charge à la fois Qt5 et Qt6 avec une seule implémentation avec toute la version de Qt et la prise en charge des liaisons gérées dans
qt_compat
. Une majorité du code Qt indépendant du moteur de rendu est maintenant dans matplotlib.backends.backend_qt
avec une spécialisation pour AGG dans
backend_qtagg
et cairo dans backend_qtcairo
.
La liaison est sélectionnée au moment de l'exécution en fonction des liaisons déjà importées (en vérifiant le QtCore
sous-paquet), puis par leQT_API
variable d'environnement, et enfin par la variable rcParams["backend"]
. Dans tous les cas où nous avons besoin de chercher, l'ordre est PyQt6
, PySide6
, PyQt5
, PySide2
. Voir Comment sélectionner l'implémentation de Qt ? pour les instructions d'utilisation.
Les backend_qt5
, backend_qt5agg
et backend_qt5cairo
sont fournis et forcent l'utilisation d'une liaison Qt5 pour la rétrocompatibilité. Leur utilisation est déconseillée (mais pas obsolète) et backend_qt
, backend_qtagg
, ou
backend_qtcairo
devrait être préféré à la place. Cependant, ces modules ne seront pas obsolètes tant que nous n'aurons pas abandonné la prise en charge de Qt5.