Comment voir les commandes d'impression via Python Script lors de la programmation du plugin pour QGIS?


13

Existe-t-il un moyen d'exécuter un plug-in personnalisé conçu pour QGIS qu'un shell Python puisse apparaître lors de l'exécution du plug-in, comme un écran de débogage? Je demande ceci pour savoir s'il existe un moyen de voir les commandes d'impression via un script Python lors de la programmation d'un plugin pour QGIS.


Autre qu'une balise de pyqgis, cette question semble n'avoir aucun lien avec le SIG. Pourriez-vous la reformuler pour dire pourquoi vous pensez que c'est une question SIG plutôt qu'une question plus adaptée à StackOverflow , s'il vous plaît?
PolyGeo

J'ai édité, et maintenant?
NothingToSay

1
Semble beaucoup mieux, mais j'ai également transformé votre titre en question et ajouté quelques balises supplémentaires pour aider à attirer le bon public.
PolyGeo

Réponses:


13

Vous envoyez des messages de journal à la fenêtre de journal QGIS en utilisant:

QgsMessageLog.logMessage(message, tag, level)

Tag est le titre de l'onglet qui sera affiché dans la fenêtre du journal QGIS. Le niveau est le niveau du message (par défaut à 0).

Par exemple:

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

Consultez la documentation de l'API QGIS pour QgsMessageLog pour plus de détails.

La fenêtre du journal peut être rendue visible à partir du menu Affichage-> Panneau-> Journal des messages.

L'autre façon consiste à créer une classe qui capture stdout et la dirige vers une fenêtre de journal dans votre plugin (le plugin Script Runner le fait). La sortie de toutes les instructions d' impression sera affichée dans votre fenêtre de journal, bien que cette méthode soit beaucoup plus impliquée si vous voulez simplement afficher quelques messages pendant le développement. Vous devez être prudent en faisant cela, car toutes les instructions d'impression d'autres plugins seront envoyées à votre plugin, sauf si vous capturez et restaurez stdout si nécessaire.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.