Belangrijk

Vertalen is een inspanning van de gemeenschap waaraan u deel kunt nemen. Deze pagina is momenteel voor 100.00% vertaald.

25.3. QGIS Python-console

Zoals u later in dit hoofdstuk zult zien is QGIS ontworpen met een architectuur voor plug-ins. Plug-ins kunnen worden geschreven in Python, een zeer beroemde taal in de geo-ruimtelijke wereld.

QGIS brengt een API voor Python (bekijk PyQGIS Developer Cookbook voor enkele voorbeelden van code) om de gebruiker interactief te kunnen laten werken met zijn objecten (lagen, object of interface). QGIS heeft ook een console voor Python.

De QGIS Python Console is een interactieve shell voor het uitvoeren van opdrachten in Python. Het heeft ook een bestandsbewerker voor Python die u in staat stelt uw scripts voor Python te bewerken en op te slaan. Zowel de console als de bewerker zijn gebaseerd op het pakket PyQScintilla2. Ga naar Plug-ins ► Python Console (Ctrl+Alt+P) om de console te openen, of klik op het pictogram pythonFile Python Console op de werkbalk Plug-ins.

25.3.1. De interactieve console

De console is een interpreter voor Python die u in staat stelt opdrachten van Python uit te voeren. Modules uit QGIS (analysis, core, gui, server, processing, 3d) en Qt (QtCore, QtGui, QtNetwork, QtWidgets, QtXml), als ook Python’s modules math, os, re and sys zijn al geïmporteerd en kunnen direct worden gebruikt.

De interactieve console is samengesteld uit een werkbalk, een gebied voor invoer en een voor uitvoer.

../../../_images/python_console.png

Fig. 25.17 De Python-console

25.3.1.1. Werkbalk

De werkbalk biedt de volgende gereedschappen:

  • clearConsole Console wissen om het gebied voor uitvoer leeg te maken;

  • start Opdracht uitvoeren beschikbaar in het gebied voor invoer: hetzelfde als drukken op Enter;

  • showEditorConsole Editor tonen: schakelt met de zichtbaarheid van de De Codebewerker;

  • options Opties…: opent een dialoogvenster om de eigenschappen voor de console te configureren;

  • helpContents Help…: verschaft een menu voor toegang tot de diverse documentatie:

  • dock Codebewerker vastzetten om het paneel vast te zetten of los te maken in de interface van QGIS

25.3.1.2. Invoergebied

De belangrijkste mogelijkheden voor het invoergebied van de console zijn:

  • Automatisch aanvullen van code, accentueren van syntaxis en tips voor aanroepen voor de volgende API’s:

    • Python

    • PyQGIS

    • PyQt5

    • QScintilla2

    • osgeo-gdal-ogr

    • osgeo-geos

  • Ctrl+Alt+Space om de lijst van Automatisch aanvullen te bekijken, indien ingeschakeld in de Instellingen voor Python;

  • Codesnippers uitvoeren vanuit het gebied voor invoer door te typen en op Enter te drukken of op Opdracht uitvoeren;

  • Codesnippers uitvoeren vanuit het gebied voor uitvoer met behulp van Geselecteerde ingeven uit het contextmenu of door te drukken op Ctrl+E;

  • Bladeren door de Opdrachtgeschiedenis vanuit het invoergebied met behulp van de pijltoetsen Omhoog en Omlaag en de opdracht uitvoeren die u wilt;

  • Ctrl+Shift+Space om de Opdrachtgeschiedenis te bekijken: dubbelklikken op een rij zal de opdracht uitvoeren. Tot het dialoogvenster Opdrachtgeschiedenis kan ook toegang worden verkregen vanuit het contextmenu van het invoergebied;

  • De opdrachtgeschiedenis opslaan en leegmaken. De geschiedenis zal worden opgeslagen in het bestand ~console_history.txt in de map van het actieve gebruikersprofiel;;

  • Typen van de volgende speciale opdrachten:

    • ? om de Help van de console voor Python weer te geven

    • _api om de QGIS C++ API documentatie te openen of _api(object) voor documentatie over een specifiek object (in QGIS C++ API- of Qt API-documentatie)

    • _pyqgis om de QGIS Python API documentatie te openen of _pyqgis(object) voor documentatie over een specifiek object (in QGIS Python API- of Qt API-documentatie)

    • _cookbook om het PyQGIS kookboek te openen.

    • ! gevolgd door een opdracht om opdrachten voor Shell uit te voeren vanuit de console van Python. De console zal een subproces straten en de uitvoer doorsturen naar de uitvoer van de console voor Python. Terwijl het subproces wordt uitgevoerd, schakelt de invoer voor de console van Python naar de modus STDIN en verstuurt het ingevoerde teken naar het kind-proces. Dit maakt het mogelijk bevestiging te versturen als het kind-programma daarom vraagt. Als de console in de modus STDIN staat, zal drukken op Ctrl+C het subproces beëindigen. Het is ook mogelijk het resultaat van een opdracht voor een variabele te beïnvloeden met de syntaxis var = !cmd

      >>> !echo QGIS Rocks!
      QGIS Rocks
      
      >>> !gdalinfo --version
      GDAL 3.10.3, released 2025/04/01
      
      >>> !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']
      

Tip

Uitgevoerde opdrachten uit het uitvoergebied opnieuw gebruiken

U kunt codesnippers uitvoeren vanuit het uitvoergebied door enige tekst te selecteren en te drukken op Ctrl+E. Het maakt niet uit of de geselecteerde tekst de prompt voor de interpreter bevat (>>>, ...).

25.3.2. De Codebewerker

Gebruik de knop showEditorConsole Bewerker weergeven in de Interactieve console om de widget Bewerken in te schakelen. Dat maakt het maken en opslaan van scripts voor Python mogelijk en biedt geavanceerde functionaliteiten om uw code te beheren. Afhankelijk van de ingeschakelde instellingen, verschaft het verscheidene mogelijkheden voor het gemakkelijker schrijven van code, zoals aanvullen van code, accentueren van syntaxis en hulptips voor aanroepen in ondersteunde API’s. Automatisch inspringen, invoegen van haakjes, opmerkingen voor code en controle van syntaxis zijn ook beschikbaar.

../../../_images/python_console_editor.png

Fig. 25.18 De Python consolebewerker

Het gebied van de Codebewerker stelt u in staat om tegelijkertijd aan verschillende scripts te werken, elk in een specifieke tab. Druk op symbologyAdd Nieuwe bewerker om een nieuwe tab toe te voegen. U kunt een script volledig of gedeeltelijk uitvoeren vanuit de Codebewerker en het resultaat uitvoeren naar het uitvoergebied van de Interactieve Console.

Tip

Druk op Ctrl+Space om de lijst van Automatisch aanvullen te bekijken.

Aan de bovenzijde van het dialoogvenster verschaft een werkbalk toegang tot een aantal opdrachten. Met rechts klikken in het gebied van de bewerker verschaft nog enkele opties meer. Alle beschikbare gereedschappen worden in de volgende tabel beschreven.

Tabel 25.1 Gereedschappen voor bewerker van de Python Console

Naam gereedschap

Functie

Locatie

scriptOpen Script openen…

Laad een bestand van Python in het dialoogvenster van de Codebewerker, als een nieuwe tab

Werkbalk

showEditorConsole In externe bewerker openen

Opent een opgeslagen script voor Python in het standaard externe programma dat is ingesteld voor het bewerken van bestanden van Python

fileSave Opslaan (Ctrl+S)

Slaat het huidige script op

fileSaveAs Opslaan als… (Ctrl+Shift+S)

Slaat het huidige script op als een nieuw bestand

start Script uitvoeren (Ctrl+Shift+E)

Voert het gehele script uit in de interactieve console (dit maakt een byte-gecompileerd bestand met de extensie .pyc).

Werkbalk & contextmenu

helpContents Context help (F1)

Probeert de help voor de geselecteerde tekenreeks (class, method, object,…) weer te geven in de corresponderende documentatie van de API

Contextmenu

runConsole Selectie uitvoeren (Ctrl+E)

Voert in de Interactieve console de in het script geselecteerde regels uit

Werkbalk & contextmenu

editCut Knippen (Ctrl+X)

Knipt de geselecteerde tekst naar het klembord

editCopy Kopiëren (Ctrl+C)

Kopieert de geselecteerde tekst naar het klembord

editPaste Plakken (Ctrl+V)

Plakt een geknipte of gekopieerde tekst

searchEditorConsole Tekst zoeken

Maakt het mogelijk tekst in het script te zoeken en te vervangen.

  • Gebruik de standaard sneltoets voor de omgeving van desktop om de vorige/volgende te zoeken (Ctrl+G en Shift+Ctrl+G);

  • Automatisch de eerste overeenkomst zoeken bij het typen in het zoekvak;

  • Initiële zoekreeks instellen om te zoeken bij het openen van Zoeken;

  • Schakel de optie searchRegex Reguliere expressies gebruiken in de zoekbalk in om reguliere expressies te gebruiken in plaats van overeenkomsten in platte tekst;

  • replace Vervangen van de overeenkomende tekst door de tekst in het vak Vervangen. Indien een reguliere expressie wordt gebruikt, kunt u verwijzen naar vastgelegde groepen (bijv. met \1) in de vervangingstekst. Gebruik Alles vervangen om alle overeenkomsten in een keer te vervangen.

  • Drukken op Esc sluit de zoekbalk.

commentEditorConsole Opmerking schakelen (Ctrl+:)

Maakt opmerkingen van of heft opmerkingen op voor geselecteerde regels, door het teken # toe te voegen of te verwijderen (potentieel gevolgd door een spatie) aan het begin van de regels. Wanneer de selectie zowel opmerkingen als feitelijke opdrachten bevat, voegt het # toe aan het begin van elke niet lege regel. Opnieuw op de knop drukken brengt u terug naar de initiële staat.

formatCode Code opnieuw opmaken (Ctrl+Alt+F)

Maakt het mogelijk handmatig verschillende regels voor opmaak op de code toe te passen (import sorteren, inspringen, regellengte,…), volgens door de gebruiker gedefinieerde instellingen. Dit zou het installeren van aanvullende modules voor Python kunnen vereisen.

classBrowserConsole Object inspecteren…

Geeft weer of verbergt een specifieke browser met een boomstructuur voor klassen en functies die in het script beschikbaar zijn. Klik op een item for snelle toegang tot zijn definitie. Het gereedschap vereist het activeren vanuit de Opties — Python - Uitvoeren en debuggen.

Bewerker verbergen

Verbergt het bewerkingsblok van de Python codebewerker. , Druk op de knop showEditorConsole Bewerker weergeven op de werkbalk van de interactieve console om hem weer opnieuw zichtbaar te maken.

Contextmenu

syntaxErrorConsole Syntaxis controleren (Ctrl+4)

Bladert door de code en rapporteert fouten in de syntaxis, zoals ontbrekende haakjes, dubbele punten, verkeerd inspringen,…

undo Ongedaan maken (Ctrl+Z)

Maakt de laatste actie ongedaan

redo Opnieuw (Ctrl+Shift+Z)

Draait een actie Ongedaan maken terug naar een meer recente

Alles selecteren (Ctrl+A)

Selecteert het gehele script

codepadConsole Delen op GitHub

Deelt het script als een Geheime Gist of Publieke Gist op GitHub, vereist een toegangstoken voor GitHub.

options Opties…

Opent het dialoogvenster Instellingen voor Python.