backend_qtagg
, #backend_qtcairo
NOTA Questi backend non sono (auto) documentati qui, per evitare di aggiungere una dipendenza alla creazione dei documenti.
Associazioni Qt #
Attualmente ci sono 2 versioni Qt attivamente supportate, Qt5 e Qt6, e due collegamenti Python supportati per versione: PyQt5 e PySide2 per Qt5 e PyQt6 e PySide6 per Qt6 [ 1 ] . Sebbene sia PyQt che Qt per Python (alias PySide) rispecchino da vicino l'API C++ sottostante che stanno avvolgendo, non sono sostituzioni drop-in l'una per l'altra [ 2 ] . Per tenere conto di ciò, Matplotlib ha un livello di compatibilità API interno in
matplotlib.backends.qt_compat
cui copre le nostre esigenze. Nonostante sia un modulo pubblico, non lo consideriamo un'API stabile rivolta all'utente e potrebbe cambiare senza preavviso [ 3 ] .
In precedenza i backend Qt di Matplotlib avevano il numero di versione Qt nel nome, sia nel modulo che nel rcParams["backend"]
valore (ad esempio matplotlib.backends.backend_qt4agg
e
matplotlib.backends.backend_qt5agg
). Tuttavia, come parte dell'aggiunta del supporto per Qt6, siamo stati in grado di supportare sia Qt5 che Qt6 con un'unica implementazione con tutta la versione Qt e il supporto per l'associazione gestiti in
qt_compat
. La maggior parte del codice Qt agnostico del renderer è ora in matplotlib.backends.backend_qt
con specializzazione per AGG in
backend_qtagg
e cairo in backend_qtcairo
.
L'associazione viene selezionata in fase di esecuzione in base a quali associazioni sono già importate (controllando il QtCore
sottopacchetto), quindi dalQT_API
variabile d'ambiente, e infine dalla rcParams["backend"]
. In tutti i casi in cui dobbiamo cercare, l'ordine è PyQt6
, PySide6
, PyQt5
, PySide2
. Vedi Come seleziono l'implementazione Qt? per le istruzioni d'uso.
I backend_qt5
, backend_qt5agg
, e backend_qt5cairo
sono forniti e forzano l'uso di un'associazione Qt5 per la retrocompatibilità. Il loro uso è sconsigliato (ma non deprecato) e dovrebbero invece essere preferiti backend_qt
, backend_qtagg
, o
. backend_qtcairo
Tuttavia, questi moduli non saranno deprecati fino a quando non abbandoneremo il supporto per Qt5.