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.

Fig. 25.15 Python-konsolen
25.3.1.1. Verktygsrad
I verktygsfältet finns följande verktyg:
Run Command tillgängligt i inmatningsområdet: samma sak som att trycka på Enter;
Show Editor: växlar Kodredigeraren synlighet;
Options…: öppnar en dialogruta för att konfigurera konsolegenskaper;
Help… innehåller en meny för att komma åt olika dokument:
Python Console Help (den aktuella sidan)
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 syntaxenvar = !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 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
Run Selected i den kontextuella menyn;
Kör hela skriptet med kommandot
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.

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.