Wichtig
Übersetzen ist eine Gemeinschaftsleistung Sie können mitmachen. Diese Seite ist aktuell zu 100.00% übersetzt.
29.3. QGIS Python Konsole
Wie Sie später in diesem Kapitel sehen werden, wurde QGIS mit einer Plugin-Architektur entwickelt. Plugins können in Python geschrieben werden, einer sehr bekannten Sprache in der Welt der Geodaten.
QGIS verfügt über eine Python-API (siehe PyQGIS Developer Cookbook für einige Code-Beispiele), um dem Benutzer die Interaktion mit seinen Elementen (Layern, Objekten oder Schnittstellen) zu ermöglichen. QGIS hat auch eine Python-Konsole.
Die QGIS Python-Konsole ist eine interaktive Shell für die Ausführung von Python-Befehlen. Sie verfügt auch über einen Python-Dateieditor, mit dem Sie Ihre Python-Skripte bearbeiten und speichern können. Sowohl die Konsole als auch der Editor basieren auf dem Paket PyQScintilla2. Um die Konsole zu öffnen, gehen Sie zu
(Strg+Alt+P).29.3.1. Die interaktive Konsole
Die Konsole ist ein Python-Interpreter, mit dem Sie Python-Befehle ausführen können. Module von QGIS (analysis, core, gui, server, processing, 3d) und Qt (QtCore, QtGui, QtNetwork, QtWidgets, QtXml) sowie die Python-Module math, os, re und sys sind bereits importiert und können direkt verwendet werden.
Die interaktive Konsole besteht aus einer Symbolleiste, einem Eingabebereich und einem Ausgabebereich.
![../../../_images/python_console.png](../../../_images/python_console.png)
Abb. 29.15 Die Python-Konsole
29.3.1.1. Werkzeugleiste
Die Symbolleiste bietet folgende Werkzeuge:
Befehl ausführen im Eingabebereich verfügbar: dasselbe wie das Drücken von Enter;
Editor anzeigen: schaltet die Sichtbarkeit von Der Code-Editor um;
|Optionen| Optionen…: öffnet den Dialog zur Konfiguration der Python-Konsole in den Optionen;
Hilfe… bietet ein Menü für den Zugriff auf verschiedene Dokumentationen:
Python-Konsole-Hilfe (diese Dokumentation)
Dock Code Editor zum Andocken bzw. Abdocken des Bedienfeldes in der QGIS-Oberfläche
29.3.1.2. Eingabebereich
Die wichtigsten Objekte des Eingabebereichs der Konsole sind:
Code-Vervollständigung, Hervorhebung der Syntax und Calltips für die folgenden APIs:
Python
PyQGIS
PyQt5
QScintilla2
osgeo-gdal-ogr
Strg+Alt+Leertaste, um die Liste der automatischen Vervollständigung anzuzeigen, wenn sie in Python-Konsole aktiviert ist;
Führen Sie Code-Schnipsel aus dem Eingabebereich aus, indem Sie Enter oder Befehl ausführen drücken;
Führen Sie Code-Schnipsel aus dem Ausgabebereich aus, indem Sie die Option Gewähltes eingeben aus dem Kontextmenü verwenden oder Strg+E drücken;
Navigieren Sie vom Eingabebereich aus mit den Pfeiltasten Auf und Ab durch den Befehlsverlauf und führen Sie den gewünschten Befehl aus;
Strg+Umschalt+Leertaste, um die Befehlshistorie anzuzeigen: ein Doppelklick auf eine Zeile führt den Befehl aus. Der Dialog Befehlsverlauf kann auch über das Kontextmenü des Eingabebereichs aufgerufen werden;
Speichern und löschen Sie den Befehlsverlauf. Der Verlauf wird in der Datei
console_history.txt
unter dem aktiven Benutzerprofil-Ordner gespeichert;Geben Sie die folgenden speziellen Befehle ein:
?
um eine Hilfe der Python-Konsole anzuzeigen_api
um die QGIS C++ API Dokumentation zu öffnen oder_api(object)
für eine spezifische Objektdokumentation (in QGIS C++ API oder Qt API Dokumentation)_pyqgis
um die QGIS Python API Dokumentation zu öffnen oder_pyqgis(object)
für eine spezifische Objektdokumentation (in der QGIS Python API oder Qt API Dokumentation)_cookbook
um das PyQGIS Cookbook zu öffnen.!
gefolgt von einem Befehl, um Shell-Befehle von der Python-Konsole auszuführen. Die Konsole startet einen Unterprozess und leitet dessen Ausgabe an den Python-Konsolen Ausgang weiter. Während der Unterprozess läuft, schaltet die Python- Konsole Input in den STDIN-Modus und leitet eingegebene Zeichen an den Kindprozess weiter. Dadurch ist es möglich, eine Bestätigung zu senden, wenn das untergeordnete Programm darum bittet. Wenn sich die Konsole im STDIN-Modus befindet, wird der Unterprozess durch Drücken von Strg+C beendet. Es ist auch möglich, das Ergebnis eines Befehls in einer Variablen mit der Syntaxvar = !cmd
zu beeinflussen.>>> !echo QGIS Rocks! QGIS Rocks >>> !gdalinfo --version GDAL 3.6.2, released 2023/01/02 >>> !pip install black # Install black python formatter using pip (if available) >>> sql_formats = !ogrinfo --formats | grep SQL >>> sql_formats ['SQLite -vector- (rw+v): SQLite / Spatialite', ' MSSQLSpatial -vector- (rw+): Microsoft SQL Server Spatial Database', ' PostgreSQL -vector- (rw+): PostgreSQL/PostGIS', ' MySQL -vector- (rw+): MySQL', ' PGDUMP -vector- (w+v): PostgreSQL SQL dump']
Tipp
Ausgeführte Befehle aus dem Bedienfeld wiederverwenden
Sie können Codeschnipsel aus dem Bedienfeld ausführen, indem Sie einen Text auswählen und Strg+E drücken. Es spielt keine Rolle, ob der ausgewählte Text den Interpreter-Prompt enthält (>>>
, ...
).
29.3.2. Der Code-Editor
Verwenden Sie die Schaltfläche Editor anzeigen, um das Editor-Widget zu aktivieren. Es ermöglicht das Bearbeiten und Speichern von Python-Dateien und bietet erweiterte Funktionen zur Verwaltung Ihres Codes (Kommentieren und Entkommentieren von Code, Prüfen der Syntax, Teilen des Codes über GitHub und vieles mehr). Die wichtigsten Objekte sind:
Code-Vervollständigung, Hervorhebung der Syntax und Calltips für die folgenden APIs:
Python
PyQGIS
PyQt5
QScintilla2
osgeo-gdal-ogr
Strg+Leertaste, um die Liste der automatischen Vervollständigung anzuzeigen.
Freigabe von Codeschnipseln über GitHub.
Strg+4 Syntaxprüfung.
Suchleiste (öffnen Sie sie mit der Standardverknüpfung der Desktop-Umgebung, normalerweise Strg+F):
Verwenden Sie die Standard-Verknüpfung der Desktop-Umgebung für die Suche nach dem Nächsten/Vorherigen (Strg+G und Umschalt+Strg+G);
Automatische Suche nach der ersten Übereinstimmung bei der Eingabe in das Suchfeld;
Setzt die anfängliche Suchzeichenfolge beim Öffnen der Suche auf die Auswahl;
Durch Drücken von Esc wird die Suchleiste geschlossen.
Objektinspektor: ein Klassen- und Funktionsbrowser;
Gehen Sie mit einem Mausklick zu einer Objektdefinition (vom Objektinspektor aus);
Ausführen von Codeschnipseln mit dem Befehl
Auswahl ausführen im Kontextmenü;
Führen Sie das gesamte Skript mit dem Befehl
Skript ausführen aus (dies erzeugt eine byte-kompilierte Datei mit der Endung
.pyc
).
Bemerkung
Die teilweise oder vollständige Ausführung eines Skripts aus dem Code-Editor gibt das Ergebnis im Ausgabebereich der Konsole aus.
![../../../_images/python_console_editor.png](../../../_images/python_console_editor.png)
Abb. 29.16 Der Python-Konsolen-Editor
Tipp
Speichern Sie die Einstellungen
Um den Zustand der Widgets der Konsole zu speichern, müssen Sie die Python-Konsole über die Schaltfläche „Schließen“ schließen. Dies ermöglicht es Ihnen, die Geometrie zu speichern, um sie beim nächsten Start wiederherzustellen.