29.3. Console python di QGIS
Come vedrai più avanti in questo capitolo, QGIS è stato progettato con un’architettura a plugin. I plugin possono essere scritti in Python, una lingua molto famosa nel mondo geospaziale.
QGIS ha un’API Python (vedi PyQGIS Developer Cookbook per alcuni esempi di codice) per permettere all’utente di interagire con i suoi oggetti (layer, elementi o interfacce). QGIS ha anche una console Python.
QGIS Python Console è una shell interattiva per l’esecuzione di comandi Python. Dispone anche di un editor di file Python che consente di modificare e salvare gli script Python. Sia la console che l’editor sono basati sul pacchetto PyQScintilla2. Per aprire la console andare su
(Ctrl+Alt+P).29.3.1. La Console Interattiva
La console è un interprete Python che consente di eseguire comandi Python. I moduli di QGIS (analysis, core, gui, server, processing, 3d) e Qt (QtCore, QtGui, QtNetwork, QtWidgets, QtXml) e i moduli math, os, re e sys di Python sono già importati e possono essere utilizzati direttamente.
La console interattiva è composta da una barra degli strumenti, un’area di input e una di output.

Fig. 29.15 La Console Python
29.3.1.1. Barra degli Strumenti
La barra degli strumenti comprende i seguenti strumenti:
-
Esegui Comando disponibile nell’area di immissione: lo stesso che premere Enter;
-
Mostra Editor: attiva la modalità L' Editor di Codice;
-
Opzioni…: apre una finestra di dialogo per configurare le Proprietà Console Python;
-
Aiuto… fornisce un menu per accedere a diverse documentazioni:
-
Python Console Help (la pagina corrente)
-
-
Aggancia Editor Codice per agganciare o sganciare il pannello nell’interfaccia QGIS
29.3.1.2. Area di immissione
Le caratteristiche principali dell’area di immissione della Console sono:
-
Completamento del codice, evidenziazione della sintassi e suggerimenti per le seguenti API:
-
Python
-
PyQGIS
-
PyQt5
-
QScintilla2
-
osgeo-gdal-ogr
-
-
Ctrl+Alt+Space per visualizzare l’elenco di completamento automatico se abilitato nelle Impostazioni Console Python;
-
Eseguire frammenti di codice dall’area di input digitando e premendo Enter o Esegui Comando;
-
Eseguire frammenti di codice dall’area di output usando Enter Selected dal menu contestuale o premendo Ctrl+E;
-
Scorrere la cronologia dei comandi dall’area di input usando i tasti freccia Up e Down ed eseguire il comando che vuoi;
-
Ctrl+Shift+Space per visualizzare la cronologia dei comandi: facendo doppio clic su una riga il comando verrà eseguito. La finestra di dialogo Storico Comandi può anche essere richiamata dal menu contestuale dell’area di input;
-
Salva e cancella la cronologia dei comandi. La cronologia sarà salvata nel file
console_history.txt
nella cartella attiva nel Profilo utente; -
Digita i seguenti comandi speciali:
-
?
per visualizzare una guida della Console Python. -
_api
per aprire la documentazione QGIS C++ API o_api(object)
per la documentazione di un oggetto specifico (nella documentazione di QGIS C++ API o Qt API) -
_pyqgis
per aprire la documentazione di QGIS Python API oppure_pyqgis(object)
per la documentazione di un oggetto specifico (nella documentazione di QGIS Python API o Qt API) -
_cookbook
per aprire PyQGIS Cookbook. -
!
seguito da un comando per eseguire comandi di shell dalla console Python. La console avvierà un sottoprocesso e inoltrerà il suo output all’Output della console Python. Mentre il sottoprocesso è in esecuzione, l’Input della console Python passa alla modalità STDIN e inoltra i caratteri inseriti al processo figlio. In questo modo è possibile inviare una conferma quando il programma figlio la richiede. Quando la console è in modalità STDIN, premendo Ctrl+C si arresta il sottoprocesso. È anche possibile trasferire il risultato di un comando a una variabile con la sintassivar = !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']
-
Suggerimento - Riutilizzare comandi effettuati dal pannello di output |
Utilizza il pulsante Mostra Editor per attivare il widget dell’editor. Ti permette di modificare e salvare i file Python e offre funzionalità avanzate per gestire il codice (commentare e decommentare il codice, controllare la sintassi, condividere il codice via GitHub e molto altro). Le funzionalità principali sono:
-
Completamento del codice, evidenziazione della sintassi e suggerimenti per le seguenti API:
-
Python
-
PyQGIS
-
PyQt5
-
QScintilla2
-
osgeo-gdal-ogr
-
-
Ctrl+Space per visualizzare la lista di completamento automatico.
-
Condividere frammenti di codice tramite GitHub.
-
Ctrl+4 Controllo della sintassi.
-
Barra di ricerca (aprila con la scorciatoia predefinita dell’ambiente desktop, di solito Ctrl+F):
-
Usa la scorciatoia predefinita dell’ambiente desktop per trovare il successivo/precedente (Ctrl+G e Shift+Ctrl+G);
-
Trova automaticamente la prima corrispondenza mentre si digita nella casella di ricerca;
-
Trova automaticamente la prima corrispondenza mentre si digita nella casella di ricerca;
-
Premendo Esc si chiude la barra di ricerca.
-
-
Ispettore Oggetto: un visualizzatore di classi e funzioni;
-
Vai alla definizione di un oggetto con un clic del mouse (da Ispettore Oggetto);
-
Esegui frammenti di codice con il comando
Esegui selezionate nel menu contestuale;
-
Esegui l’intero script con il comando
Esegui Script (questo crea un file compilato in byte con estensione
.pyc
).
Nota |

Fig. 29.16 L’editor Console Python
Suggerimento - Salvare le opzioni |