Viktigt

Översättning är en gemenskapsinsats du kan gå med i. Den här sidan är för närvarande översatt till 100.00%.

25.3. QGIS Python-konsol

Som du kommer att se senare i detta kapitel har QGIS utformats med en plugin-arkitektur. Plugins kan skrivas i Python, ett mycket känt språk i den geospatiala världen.

QGIS har ett Python API (se PyQGIS Developer Cookbook för några kodexempel) för att låta användaren interagera med dess objekt (lager, funktion eller gränssnitt). QGIS har också en Python-konsol.

QGIS Python Console är ett interaktivt skal för exekvering av Python-kommandon. Den har också en Python-filredigerare som gör att du kan redigera och spara dina Python-skript. Både konsolen och redigeraren är baserade på PyQScintilla2-paketet. För att öppna konsolen går du till :menyval:`Plugins --> Python Console` (Ctrl+Alt+P).

25.3.1. Den interaktiva konsolen

Konsolen är en Python-tolk som gör att du kan köra Python-kommandon. Moduler från QGIS (analysis, core, gui, server, processing, 3d) och Qt (QtCore, QtGui, QtNetwork, QtWidgets, QtXml) samt Pythons moduler math, os, re och sys är redan importerade och kan användas direkt.

Den interaktiva konsolen består av ett verktygsfält, en inmatningsyta och en utmatningsyta.

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

Fig. 25.15 Python-konsolen

25.3.1.1. Verktygsrad

I verktygsfältet finns följande verktyg:

  • clearConsole Clear Console för att rensa utmatningsområdet;

  • start Run Command tillgängligt i inmatningsområdet: samma sak som att trycka på Enter;

  • showEditorConsole Show Editor: växlar Kodredigeraren synlighet;

  • options Options…: öppnar en dialogruta för att konfigurera konsolegenskaper;

  • helpContents Help… innehåller en meny för att komma åt olika dokument:

  • dock Dock Code Editor för att docka eller undocka panelen i QGIS-gränssnittet

25.3.1.2. Inmatningsområde

De viktigaste funktionerna i konsolens inmatningsområde är

  • Kodkomplettering, syntaxmarkering och anropstips för följande API:er:

    • Python

    • PyQGIS

    • PyQt5

    • QScintilla2

    • osgeo-gdal-ogr

  • Ctrl+Alt+Space för att visa listan för automatisk komplettering om den är aktiverad i Python-inställningar;

  • Kör kodsnuttar från inmatningsområdet genom att skriva och trycka på Enter eller Run Command;

  • Exekvera kodavsnitt från utmatningsområdet med hjälp av Enter Selected från snabbmenyn eller genom att trycka på Ctrl+E;

  • Bläddra igenom kommandohistoriken från inmatningsområdet med hjälp av piltangenterna Upp och Ned och kör det kommando du vill ha;

  • Ctrl+Shift+Space för att visa kommandohistoriken: dubbelklicka på en rad för att utföra kommandot. Dialogrutan Kommandohistorik kan också nås från kontextmenyn i inmatningsområdet;

  • Spara och rensa kommandohistoriken. Historiken sparas i filen console_history.txt under den aktiva mappen användarprofil;

  • Skriv in följande specialkommandon:

    • ? för att visa en hjälp av Python-konsolen

    • _api för att öppna QGIS C++ API dokumentation eller _api(object) för en specifik objektdokumentation (i QGIS C++ API eller Qt API dokumentation)

    • _pyqgis för att öppna QGIS Python API dokumentation eller _pyqgis(object) för en specifik objektdokumentation (i QGIS Python API eller Qt API dokumentation)

    • _cookbook to open PyQGIS Cookbook.

    • ! följt av ett kommando för att köra Shell-kommandon från Python-konsolen. Konsolen startar en underprocess och vidarebefordrar dess utdata till Python Console Output. Medan subprocessen körs växlar Python Console Input till STDIN-läge och vidarebefordrar inmatade tecken till barnprocessen. Detta gör det möjligt att skicka en bekräftelse när barnprogrammet ber om det. När konsolen är i STDIN-läge kan man trycka på Ctrl+C för att döda underprocessen. Det är också möjligt att påverka resultatet av ett kommando till en variabel med syntaxen var = !cmd

      >>> !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']
      

Tips

Återanvända utförda kommandon från utmatningspanelen

Du kan köra kodsnuttar från utdatapanelen genom att markera text och trycka på Ctrl+E. Det spelar ingen roll om den markerade texten innehåller tolkens prompt (>>>, ...).

25.3.2. Kodredigeraren

Använd knappen showEditorConsole Show Editor för att aktivera redigeringswidgeten. Den gör det möjligt att redigera och spara Python-filer och erbjuder avancerade funktioner för att hantera din kod (kommentera och avkommentera kod, kontrollera syntax, dela koden via GitHub och mycket mer). Huvudfunktionerna är:

  • Kodkomplettering, syntaxmarkering och anropstips för följande API:er:

    • Python

    • PyQGIS

    • PyQt5

    • QScintilla2

    • osgeo-gdal-ogr

  • Ctrl+Space för att se den automatiska kompletteringslistan.

  • Dela kodsnuttar via GitHub <console_options>`.

  • Ctrl+4 Syntaxkontroll.

  • Sökfält (öppna det med standardgenvägen i skrivbordsmiljön, vanligtvis Ctrl+F):

    • Använd standardgenvägen i skrivbordsmiljön för att hitta nästa/förra (Ctrl+G och Shift+Ctrl+G);

    • Hitta automatiskt den första matchningen när du skriver i sökrutan;

    • Ställ in initial söksträng till val när du öppnar sökningen;

    • Tryck på Esc för att stänga sökfältet.

  • Objektinspektör: en klass- och funktionsbläddrare;

  • Gå till en objektdefinition med ett musklick (från Object inspector);

  • Kör kodavsnitt med kommandot runConsole Run Selected i den kontextuella menyn;

  • Kör hela skriptet med kommandot start Run Script (detta skapar en bytekompilerad fil med tillägget .pyc).

Observera

Om du kör ett skript helt eller delvis från Code Editor visas resultatet i konsolens utmatningsområde.

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

Fig. 25.16 Python Console-editorn

Tips

Spara på alternativen

För att spara tillståndet för konsolens widgets måste du stänga Python-konsolen från knappen Stäng. Detta gör att du kan spara geometrin så att den återställs vid nästa start.