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_compatcui 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_qt4agge 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_qtcon specializzazione per AGG in backend_qtagge cairo in backend_qtcairo.

L'associazione viene selezionata in fase di esecuzione in base a quali associazioni sono già importate (controllando il QtCoresottopacchetto), 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_qt5cairosono 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_qtcairoTuttavia, questi moduli non saranno deprecati fino a quando non abbandoneremo il supporto per Qt5.