Quando aggiungi nuovi dati tramite la digitalizzazione, la finestra di dialogo che ti consente di compilare gli attributi per questi dati è un elenco predefinito dei capi. Ciò può causare un problema di usabilità, soprattutto se si dispone di insiemi di dati di grandi dimensioni o se si desidera che altre persone possano aiutarvi a digitalizzare e trovano confusi i moduli predefiniti.
Fortunatamente QGIS ti consente di personalizzare i tuoi moduli per layer. Questa lezione ti mostra come.
L’obiettivo di questa lezione: Creare un modulo per layer.
Come prima cosa abilita Attiva modifiche.
Apri la Tavola attributi relativa.
Fai clic con il tasto destro su una cella qualsiasi nella tabella. Apparirà un breve menu, con la voce Apri modulo.
Fare clic su di esso per vedere il modulo generato da QGIS per questo layer.
Ovviamente sarebbe bello poterlo fare guardando la mappa, piuttosto che dover cercare una specifica strada nel :guilabel:`Tabella degli attributi’.
Select the roads layer in the Layers list.
Usando il: guilabel: strumento “Informazioni elemento”, fai clic su una qualsiasi strada della mappa.
Il pannello Informazione risultati si apre e mostra in una vista ad albero i valori dei campi e altre informazioni generali sull’elemento cliccato.
Nella parte inferiore del pannello, spunta la casella di controllo Apri modulo automaticamenteo
Ora fai di nuovo clic su una qualsiasi strada della mappa. Lungo il precedente finestra Informazione risultati vedrai il modulo familiare:
Ogni volta che clicchi su un singolo elemento con lo strumento Informazione elementi, viene visualizzato il modulo a meno che la casella di controllo Apri modulo automaticamente sia deselezionato.
Se sei in modalità di modifica, puoi utilizzare questo modulo per modificare gli attributi di un elemento.
Attiva la modalità di modifica (se non è già attivata).
Usando lo strumento Informazioni elemento, fai clic sulla strada principale che attraversa Swellendam:
Modifica il suo valore highway come secondary.
Salva modifiche
Esci dalla modalità modifica.
Apri la :guilabel:`Tabella degli attributi’ e nota che il valore è stato aggiornato nella tabella degli attributi.
Nota
Se stai usando l’insieme di dati predefinito, troverai che ci sono più di una strada su questa mappa chiamata Voortrek Street.
È più facile modificare le cose usando un modulo, ma devi comunque inserire tutto a mano. Fortunatamente, i moduli hanno diversi tipi di cosiddetti widget che consentono di modificare i dati in vari modi.
Apri il Layer Properties del layer roads.
Passa alla scheda Campi tab. Vedrai questo:
Fai clic sul pulsante Modifica testo nella stessa riga :guilabel: man_made e si apre una nuova finestra di dialogo.
Selziona Casella di controllo nella lista delle opzioni:
Entra in modalità modifica se il layer roads non è già in modalità modifica.
Clicca sullo strumento Informazione elementi
Clicca sulla stessa strada principale che hai scelto prima:
Ora vedrai che l’attributo man_made ha una casella di controllo accanto a esso che indica Vero (selezionato) o Falso (deselezionato).
Imposta nel modulo un widget più appropriato per il campo highway.
Puoi anche progettare il tuo modulo personalizzato completamente da zero.
Crea un semplice vettore di punti chiamato: kbd:test-data con due attributi:
Nome (testo)
Età (testo)
Disegna alcuni punti sul tuo nuovo livello usando gli strumenti di digitalizzazione in modo da avere un po ‘di dati con cui lavorare. Dovrebbe apparire il modulo di acquisizione degli attributi generato da QGIS predefinito ogni volta che disegni un nuovo punto.
Nota
Devi disabilitare l’aggancio se ancora abilitato da attività precedenti.
Ora crea il tuo modulo personalizzato per la fase di acquisizione degli attributi. Per fare ciò, è necessario avere Qt4 Designer installato (necessario solo per chi crea i moduli). Dovrebbe essere fornito come parte del materiale del corso, se stai usando Windows. Potrebbe essere necessario cercarlo se stai utilizzando un altro sistema operativo. In Ubuntu, fai quanto segue nel terminale:
Nota
Al momento della scrittura, Qt5 è l’ultima versione disponibile. Tuttavia, questo processo richiede specificamente Qt4 e non è necessariamente compatibile con Qt5.
sudo apt-get install qt4-designer
e dovrebbe installarsi automaticamente. Altrimenti, cercalo nel Software Center.
Avvia Designer aprendo la relativa voce *Menu di avvio * in Windows (o qualunque modo appropriato nel tuo sistema operativo).
Nella finestra di dialogo che appare, crea una nuova finestra di dialogo:
Guarda Widget Box sulla sinistra del tuo schermo (predefinito). Contirne un oggetto Line Edit.
Clicca e trascina questo oggetto nel tuo modulo. Questo crea una nuova Line Edit nel modulo.
Con il nuovo elemento (modifica linea) selezionato, vedrai le sue proprietà lungo il lato dello schermo (sulla destra per impostazione predefinita):
Imposta il suo nome come Nome.
Usando lo stesso approccio, crea una nuova casella e imposta il suo nome su Età.
Aggiungi un Label con il testo Aggiungi una nuova persona in un carattere grassetto (guarda le proprietà dell’oggetto per impostarlo). In alternativa, potresti impostare il titolo della finestra di dialogo (anziché aggiungere un etichetta).
Fai clic in qualsiasi punto della finestra di dialogo in progettazione.
Trova il pulsante Lay Out Vertically (nella barra degli strumenti lungo il bordo superiore dello schermo, per impostazione predefinita). Questo dispone automaticamente il tuo dialogo.
Imposta la dimensione massima della finestra di dialogo (nelle sue proprietà) su 200 (larghezza) per 100 (altezza).
Salva il tuo nuovo modulo come exercise_data/forms/add_people.ui.
Al termine del salvataggio, è possibile chiudere il programma Qt4 Designer.
Torna a QGIS.
Doppio clic sul layer test-data nella legenda per accedere alle sue proprietà.
Clicca sulla scheda Campi della finestra Proprietà vettore.
Nel menu a tendina Modulo dell’editore degli attributi seleziona Provide ui-file.
Clicca sul pulsante con i punti di sospensione e scegli il file add_people.ui appena creato:
Clicca OK sulla finestra Proprietà vettore dialog.
Attiva in modalità modifica e disegna un nuovo punto
Quando lo fai, ti verrà presentata la finestra di dialogo personalizzata (invece di quella generica che QGIS crea abitualmente).
Se fai clic su uno dei tuoi punti usando lo strumento: guilabel: Informazioni elemento, puoi ora far apparire il modulo cliccando con il pulsante destro nella finestra Risultati informazioni e spuntando Apri modulo automaticamente dal menu.
Se si è in modalità di modifica per questo Layer, tale menu di scelta rapida mostrerà :guilabel: `Modifica gli elementi del modulo’ e sarà quindi possibile modificare gli attributi nel nuovo modulo anche dopo l’acquisizione iniziale.
Usando i moduli, puoi semplificarti la vita durante la modifica o la creazione di dati. Modificando i tipi di widget o creando una forma completamente nuova da zero, puoi facilitare chi digitalizza nuovi dati per quel layer, riducendo al minimo incomprensioni e errori non necessari.
Se hai completato la sezione avanzata sopra e hai conoscenza di Python, puoi controllare `questo post di blog <https://nathanw.net/2011/09/05/qgis-tips-custom-feature-forms-with- python-logic /> `_ sulla creazione di moduli di caratteristiche personalizzate con logica Python, che consente funzioni avanzate tra cui la convalida dei dati, il completamento automatico, ecc.
Aprire un modulo con l’identificazione di un elemento è una delle azioni che QGIS può eseguire. Tuttavia, puoi anche indirizzarlo per eseguire azioni personalizzate definite dall’utente. Questo è l’argomento della prossima lezione.