Importante

La traduzione è uno sforzo comunitario a cui puoi unirti. Questa pagina è attualmente tradotta al 87.50%.

5.3. Lesson: Forms

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. ★☆☆ Follow Along: Using QGIS” Form Design Functionality

  1. Seleziona il layer roads nel pannello Layer

  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. Nella parte superiore del pannello, spunta la casella Apri automaticamente il modulo per risultati su singolo elemento nel menu options Informazione Risultati.

  5. Ora, fai di nuovo clic su una qualsiasi strada della mappa. Lungo la precedente finestra di dialogo 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 Apri automaticamente il modulo per risultati su singolo elemento`.

5.3.2. ★☆☆ Try Yourself: Using the Form to Edit Values

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. ★★☆ Follow Along: Setting Form Field Types

È 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 Falso (non spuntato).

5.3.4. ★★★ Try Yourself:

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

5.3.5. ★★★ Try Yourself: Creating Test Data

Puoi anche progettare il tuo modulo personalizzato completamente da zero.

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

    • name (text)

    • age (integer)

    ../../../_images/new_point_layer.png
  2. Disegna alcuni punti sul tuo nuovo layer 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. ★★★ Follow Along: Creating a New Form

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. Imposta il suo nome a name.

  7. Usando lo stesso metodo, crea una nuova Casella e imposta il suo nome a 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. Aggiungi una Etichetta per la tua Line Edit e la tua Casella.

  10. Disponi gli elementi secondo il tuo gradimento

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

  12. Trova il pulsante Lay Out in a Form Layout (in una barra degli strumenti lungo il bordo superiore dello schermo, di default). Questo disporrà la tua finestra di dialogo automaticamente.

  13. Imposta la dimensione massima della finestra di dialogo (nelle sue proprietà) a 200 (larghezza) per 150 (altezza).

  14. Il tuo modulo dovrebbe ora avere un aspetto simile a questo:

    ../../../_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. ★★★ Follow Along: Associating the Form with Your 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 nella finestra di 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 nella finestra di 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 selezionare il modulo cliccando 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.