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_compatqui 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_qt4agget 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_qtavec une spécialisation pour AGG dans backend_qtagget 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 QtCoresous-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_qt5agget backend_qt5cairosont 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_qtcairodevrait ê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.