5.3. Lesson: Moduli

Quando aggiungi nuovi dati con la digitalizzazione, ti viene presentata una finestra di dialogo che ti permette di inserire gli attributi per quegli elementi. Comunque, questo dialogo non è molto bello da vedere. Questo può causare un problema di usabilità, specialmente sei devi creare degli insiemi di dati molto grandi, o se vuoi che altre persone ti aiutino nella digitalizzazione e trovano confuso il modulo predefinito.

Fortunatamente QGIS ti consente di personalizzare i tuoi moduli per un layer. Questa lezione ti mostra come.

Obiettivo di questa lezione: Creare un modulo per un layer.

5.3.1. basic Follow Along: Usare la funzionalità di progettazione moduli di QGIS

  1. Seleziona il layer roads nel pannello Layers

  2. Entra in modalità modifica come già fatto

  3. Apri la tabella attributi del layer roads

  4. Clicca col tasto destro in una cella della tabella. Apparirà un breve menu, che include la voce Apri modulo.

  5. Clicca su di essa per vedere il modulo che QGIS ha generato per questo layer

Ovviamente sarebbe bello poterlo fare guardando la mappa, piuttosto che dover cercare una specifica strada nella :guilabel:`Tabella attributi”.

  1. Seleziona il layer roads nel pannello Layer

  2. Usando lo strumento Informazioni Elementi, clicca su una strada nella mappa.

  3. Si apre il pannello Informazioni Risultati e mostra una vista ad albero dei valori dei campi ed altre informazioni generiche sull’elemento selezionato.

  4. In cima al pannello, nel menu options sup:Identify Settings seleziona la casella di controllo Auto open form for single feature results.

  5. Ora, fai di nuovo clic su una qualsiasi strada della mappa. Lungo il precedente finestra Informazioni risultati vedrai il modulo familiare:

    ../../../_images/roads_form.png
  6. Ogni volta che clicchi su un elemento singolo con lo strumento Informazioni, apparirà il suo modulo finché è selezionato Auto open form.

5.3.2. basic Try Yourself Usare il modulo per modificare i valori

Se sei in modalità di modifica, puoi utilizzare questo modulo per modificare gli attributi di un elemento.

  1. Attiva la modalità di modifica (se non è già attivata).

  2. Usando lo strumento identify Informazioni Elementi, clicca sulla strada principale che attraversa Swellendam:

    ../../../_images/main_street_selected.png
  3. Modifica il suo valore highway in secondary

  4. Esci dalla modalità modifica e salve le modifiche

  5. Apri la Tabella Attributi è nota che il valore è stato modificato nella tabella attributi e perciò nei dati originali

5.3.3. moderate Follow Along: Impostazione dei tipi di campo del modulo

È 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.

  1. Apri Proprietà… del layer roads

  2. Passa alla scheda Campi. Vedrai questo:

    ../../../_images/fields_panel.png
  3. Vai alla scheda Modulo Attributi. Vedrai questo:

    ../../../_images/attributes_form.png
  4. Clicca sulla riga oneway e scegli Casella di controllo per Tipo Widget nella lista delle opzioni:

    ../../../_images/checkbox_selected.png
  5. Fai clic su OK

  6. Entra in modalità modifica (se il layer roads non è già in modifica)

  7. Clicca sulla strumento Informazioni Elementi

  8. Clicca sulla stessa strada scelta prima

Vedrai che l’attributo oneway ha un casella di controllo vicino ad indicare Vero (spuntato) o False (non spuntato).

5.3.4. hard Try Yourself

Imposta nel modulo un widget più appropriato per il campo highway.

Controlla i risultati

5.3.5. hard Try Yourself Creare dati di prova

Puoi anche progettare il tuo modulo personalizzato completamente da zero.

  1. Crea un semplice layer di punti chiamato test-data con due attributi:

    • name (testo)

    • age (integer)

    ../../../_images/new_point_layer.png
  2. 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 predefinito generato da QGIS ogni volta che disegni un nuovo punto.

    Nota

    Devi disabilitare l’aggancio se ancora abilitato da attività precedenti.

    ../../../_images/new_point_entry.png

5.3.6. hard Follow Along: Creare un nuovo modulo

Ora vogliamo creare il nostro modulo personalizzato per la fase di cattura degli attributi. Per fare questo devi avere QT Designer installato (necessario solo per la persona che crea i moduli).

  1. Esegui QT Designer.

  2. Nella finestra di dialogo che appare, crea una nuova finestra di dialogo:

    ../../../_images/qt_new_dialog.png
  3. Guarda Widget Box sulla sinistra del tuo schermo (predefinito). Contiene un oggetto Line Edit.

  4. Clicca e trascina questo oggetto nel tuo modulo. Questo crea una nuova Line Edit nel modulo.

  5. Con il nuovo elemento line edit selezionato, vedrai le sue proprietà lungo il lato dello schermo (sulla destra per impostazione predefinita):

    ../../../_images/qt_line_edit.png
  6. Set its name to name.

  7. Using the same approach, create a new Spin Box and set its name to age.

  8. Aggiungi una Label con testo Aggiungi una nuova persona in grassetto (guarda nelle proprietà dell’oggetto per trovare come impostarlo). Oppure potresti voler impostare il titolo del dialogo (invece di aggiungere un’etichetta).

  9. Add a Label for your Line Edit and your Spin Box.

  10. Arrange the elements to your own desire.

  11. Fai clic in qualsiasi punto della finestra di dialogo.

  12. Find the Lay Out in a Form Layout button (in a toolbar along the top edge of the screen, by default). This lays out your dialog automatically.

  13. Set the dialog’s maximum size (in its properties) to 200 (width) by 150 (height).

  14. Your form should now look similar to this:

    ../../../_images/qt_example_form.png
  15. Salva il tuo nuovo modulo in exercise_data/forms/add_people.ui

  16. Quando hai salvato, puoi chiudere Qt Designer

5.3.7. hard Follow Along: Associare il modulo con il tuo Layer

  1. Torna a QGIS

  2. Fai doppio clic sul layer test-data nella legenda per accedere alle sue proprietà.

  3. Clicca sulla scheda Modulo Attributi nel dialogo Proprietà vettore

  4. Nel menu a tendina Attribute editor layout, seleziona Fornisci file UI.

  5. Clicca sul pulsante con i tre punti e scegli il file add_people.ui appena creato:

    ../../../_images/provide_ui_file.png
  6. Clicca OK nel dialogo Proprietà vettore

  7. Entra in modalità modifica e cattura un nuovo punto

  8. Quando lo fai, ti verrà presentata la finestra di dialogo personalizzata (invece di quella generica che QGIS crea abitualmente).

  9. Se clicchi su uno dei tuoi punti usando lo strumento identify Informazioni Elementi, puoi prendere il modulo clicca col tasto destro nella finestra informazioni risultati e scegliendo Vedi Modulo Elementi dal menu contestuale.

  10. Se sei in modalità modifica su questo layer, il menu contestuale mostrerà invece Modulo modifica attributo, e puoi modificare gli attributi nel nuovo modulo anche dopo la cattura iniziale.

5.3.8. In Conclusion

Usando i moduli, puoi semplificarti la vita durante la modifica o la creazione di dati. Modificando i tipi di widget o creando un modulo completamente nuovo da zero, puoi facilitare chi digitalizza nuovi dati per quel layer, riducendo al minimo incomprensioni ed errori non necessari.

5.3.9. Further Reading

Se hai completato la sezione avanzata precedente e conosci Python, potresti voler controllare questa voce del blog sulla creazione di attributi personalizzati per i moduli con la logica di Python, che permette funzionalità avanzate come la verifica dei dati, l’auto completamento, ecc.

5.3.10. What’s Next?

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.