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 Erweiterungen ► Python-Konsole (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

Abb. 29.15 Die Python-Konsole

29.3.1.1. Werkzeugleiste

Die Symbolleiste bietet folgende Werkzeuge:

  • clearConsole Konsole leeren, um den Ausgabebereich zu löschen;

  • start Befehl ausführen im Eingabebereich verfügbar: dasselbe wie das Drücken von Enter;

  • showEditorConsole Editor anzeigen: schaltet die Sichtbarkeit von Der Code-Editor um;

  • |Optionen| Optionen…: öffnet den Dialog zur Konfiguration der Python-Konsole in den Optionen;

  • helpContents Hilfe… bietet ein Menü für den Zugriff auf verschiedene Dokumentationen:

  • dock 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 Syntax var = !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 showEditorConsole 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 runConsole Auswahl ausführen im Kontextmenü;

  • Führen Sie das gesamte Skript mit dem Befehl start 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

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.