backend_qtagg
, #backend_qtcairo
HINWEIS Diese Backends werden hier nicht (automatisch) dokumentiert, um das Hinzufügen einer Abhängigkeit zum Erstellen der Dokumentation zu vermeiden.
Qt-Bindungen #
Derzeit gibt es 2 aktiv unterstützte Qt-Versionen, Qt5 und Qt6, und zwei unterstützte Python-Bindungen pro Version – PyQt5 und PySide2 für Qt5 und PyQt6 und PySide6 für Qt6 [ 1 ] . Während sowohl PyQt als auch Qt for Python (alias PySide) die zugrunde liegende C++-API, die sie umhüllen, genau widerspiegeln, sind sie kein direkter Ersatz füreinander [ 2 ] . Um dies zu berücksichtigen, verfügt Matplotlib über eine interne API-Kompatibilitätsschicht,
matplotlib.backends.qt_compat
die unsere Anforderungen abdeckt. Obwohl es sich um ein öffentliches Modul handelt, betrachten wir es nicht als stabile benutzerorientierte API und es kann sich ohne Vorankündigung ändern [ 3 ] .
Früher hatten die Qt-Backends von Matplotlib die Qt-Versionsnummer im Namen, sowohl im Modul als auch im rcParams["backend"]
Wert (z . B. matplotlib.backends.backend_qt4agg
und
matplotlib.backends.backend_qt5agg
). Als Teil der Unterstützung für Qt6 konnten wir jedoch sowohl Qt5 als auch Qt6 mit einer einzigen Implementierung unterstützen, wobei die gesamte Qt-Version und Bindungsunterstützung in
qt_compat
. Ein Großteil des Renderer-agnostischen Qt-Codes ist jetzt in matplotlib.backends.backend_qt
mit Spezialisierung für AGG in
backend_qtagg
und cairo in backend_qtcairo
.
Die Bindung wird zur Laufzeit basierend darauf ausgewählt, welche Bindungen bereits importiert wurden (durch Prüfen auf das QtCore
Unterpaket), dann durch dieQT_API
Umgebungsvariable und schließlich durch die rcParams["backend"]
. In allen Fällen, in denen wir suchen müssen, ist die Reihenfolge PyQt6
, PySide6
, PyQt5
, PySide2
. Siehe Wie wähle ich die Qt-Implementierung aus? für Gebrauchsanweisungen.
Die backend_qt5
, backend_qt5agg
, und backend_qt5cairo
werden bereitgestellt und erzwingen die Verwendung einer Qt5-Bindung für die Abwärtskompatibilität. Von ihrer Verwendung wird abgeraten (aber nicht veraltet) und backend_qt
, backend_qtagg
, oder
backend_qtcairo
sollten stattdessen bevorzugt werden. Diese Module werden jedoch nicht veraltet sein, bis wir die Unterstützung für Qt5 eingestellt haben.