6.3. Lesson: Moduli

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.

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

  1. Select the roads layer in the Layers panel

  2. Enter Edit Mode as before

  3. Open the roads layer’s attribute table

  4. Right-click on any cell in the table. A short menu will appear, that includes the Open form entry.

  5. Click on it to see the form that QGIS generates for this layer

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

  1. Select the roads layer in the Layers panel

  2. Using the identify Identify Features tool, click on any street in the map.

  3. The Identify Results panel opens and shows a tree view of the fields values and other general information about the clicked feature.

  4. At the top of the panel, check the Auto open form for single feature results checkbox in the options sup:Identify Settings menu.

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

    ../../../_images/roads_form.png
  6. Each time you click on a single feature with the Identify tool, its form pops up as long as the Auto open form is checked.

6.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. Using the identify Identify Features tool, click on the main street running through Swellendam:

    ../../../_images/main_street_selected.png
  3. Edit its highway value to be secondary

  4. Exit edit mode and save your edits

  5. Open the Attribute Table and note that the value has been updated in the attributes table and therefore in the source data

6.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. Open the roads layer’s Properties…

  2. Passa alla scheda Campi tab. Vedrai questo:

    ../../../_images/fields_panel.png
  3. Switch to the Attribute Form tab. You’ll see this:

    ../../../_images/attributes_form.png
  4. Click on the oneway row and choose Checkbox as Widget Type in the list of options:

    ../../../_images/checkbox_selected.png
  5. Click OK

  6. Enter edit mode (if the roads layer is not already in edit mode)

  7. Click on the identify Identify Features tool

  8. Click on the same main road you chose earlier

You will now see that the oneway attribute has a checkbox next to it denoting True (checked) or False (unchecked).

6.3.4. hard Try Yourself

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

Controlla i tuoi risultati

6.3.5. hard Try Yourself Crea dati di prova

Puoi anche progettare il tuo modulo personalizzato completamente da zero.

  1. Create a simple point layer named test-data with two attributes:

    • name (text)

    • age (text)

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

    Nota

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

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

6.3.6. hard Follow Along: Crea un nuovo modulo

Now we want to create our own custom form for the attribute data capture phase. To do this, you need to have QT Designer installed (only needed for the person who creates the forms).

  1. Start 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). Contirne 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 (modifica linea) 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 spinbox and set its name to Age.

  8. Add a Label with the text Add a New Person in a bold font (look in the object properties to find out how to set this). Alternatively, you may want to set the title of the dialog itself (rather than adding a label).

  9. Fai clic in qualsiasi punto della finestra di dialogo in progettazione.

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

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

  12. Save your new form as exercise_data/forms/add_people.ui

  13. When it’s done saving, you can close Qt Designer

6.3.7. hard Follow Along: Associa il modulo con il tuo Layer

  1. Go back to QGIS

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

  3. Click on the Fields tab in the Layer Properties dialog

  4. Nel menu a tendina Modulo dell’editore degli attributi seleziona Provide ui-file.

  5. Click the ellipsis button and choose the add_people.ui file you just created:

    ../../../_images/provide_ui_file.png
  6. Click OK on the Layer Properties dialog

  7. Enter edit mode and capture a new point

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

  9. If you click on one of your points using the identify Identify Features tool, you can now bring up the form by right clicking in the identify results window and choosing View Feature Form from the context menu.

  10. If you are in edit mode for this layer, that context menu will show Edit Feature Form instead, and you can then adjust the attributes in the new form even after initial capture.

6.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 una forma completamente nuova da zero, puoi facilitare chi digitalizza nuovi dati per quel layer, riducendo al minimo incomprensioni e errori non necessari.

6.3.9. Further Reading

If you completed the advanced section above and have knowledge of Python, you may want to check out this blog entry about creating custom feature forms with Python logic, which allows advanced functions including data validation, autocompletion, etc.

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