Come visualizzare i comandi di stampa tramite Python Script durante la programmazione di plugin per QGIS?


13

C'è un modo che dall'esecuzione di un plug-in personalizzato creato per QGIS che una Python Shell possa apparire insieme quando viene eseguito il plug-in, come una schermata di debug? Sto chiedendo questo per sapere se c'è un modo per vedere i comandi di stampa tramite uno script Python durante la programmazione di un plugin per QGIS.


A parte un tag di pyqgis, questa domanda sembra non avere alcun collegamento con GIS. Saresti in grado di riformularlo per dire perché pensi che sia una domanda GIS piuttosto che una più adatta a StackOverflow , per favore?
PolyGeo

Ho modificato, che ne dici adesso?
Niente da dire il

1
Sembra molto meglio, ma ho anche trasformato il tuo titolo in una domanda e ho aggiunto alcuni tag extra per attirare il pubblico giusto.
PolyGeo

Risposte:


13

Si inviano messaggi di registro alla finestra del registro di QGIS usando:

QgsMessageLog.logMessage(message, tag, level)

Tag è il titolo della scheda che verrà visualizzata nella finestra del registro di QGIS. Livello è il livello del messaggio (il valore predefinito è 0).

Per esempio:

QgsMessageLog.logMessage('My message', 'MyPlugin')

Per i dettagli, consultare la documentazione dell'API QGIS per QgsMessageLog.

La finestra del registro può essere resa visibile dal menu Visualizza-> Pannello-> Messaggi di registro.

L'altro modo è quello di creare una classe che catturi stdout e lo indirizzi a una finestra di registro all'interno del proprio plugin (il plugin Script Runner fa questo). L'output di tutte le istruzioni di stampa verrà visualizzato nella finestra del registro, sebbene questo metodo sia molto più complesso se si desidera visualizzare solo alcuni messaggi durante lo sviluppo. Devi fare attenzione, poiché tutte le istruzioni di stampa di altri plug-in verranno inviate al tuo plug-in a meno che non acquisisca e ripristini stdout secondo necessità.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.