Jak wyświetlić polecenia drukowania za pomocą skryptu Python podczas programowania wtyczki dla QGIS?


13

Czy istnieje sposób, w jaki po uruchomieniu niestandardowej wtyczki stworzonej dla QGIS, powłoka Python Shell może pojawiać się po uruchomieniu wtyczki, jak ekran debugowania? Proszę o to, aby wiedzieć, czy istnieje sposób, aby zobaczyć polecenia drukowania za pomocą skryptu Python podczas programowania wtyczki dla QGIS.


Poza tagiem pyqgis to pytanie wydaje się nie mieć związku z GIS. Czy mógłbyś powtórzyć to zdanie, aby powiedzieć, dlaczego uważasz, że jest to pytanie GIS, a nie jedno bardziej odpowiednie dla StackOverflow ?
PolyGeo

Redagowałem, a może teraz?
NothingToSay

1
Wygląda znacznie lepiej, ale zmieniłem również twój tytuł w pytanie i dodałem kilka dodatkowych tagów, aby przyciągnąć odpowiednich odbiorców.
PolyGeo

Odpowiedzi:


13

Wiadomości dziennika wysyła się do okna dziennika QGIS, używając:

QgsMessageLog.logMessage(message, tag, level)

Tag to tytuł karty, która będzie wyświetlana w oknie dziennika QGIS. Poziom to poziom wiadomości (domyślnie 0).

Na przykład:

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

Szczegółowe informacje można znaleźć w dokumentacji API QGIS dla QgsMessageLog.

Okno dziennika można wyświetlić w menu Widok-> Panel-> Wiadomości dziennika.

Innym sposobem jest utworzenie klasy, która przechwytuje standardowe wyjście i kieruje go do okna dziennika we wtyczce (robi to wtyczka Script Runner). Dane wyjściowe ze wszystkich instrukcji drukowania będą wyświetlane w oknie dziennika, chociaż ta metoda jest znacznie bardziej zaangażowana, jeśli chcesz wyświetlić kilka komunikatów podczas programowania. Musisz to robić ostrożnie, ponieważ wszystkie wyciągi z innych wtyczek zostaną wysłane do Twojej wtyczki, chyba że przechwycisz i przywrócisz standardowe wyjście w razie potrzeby.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.