Form degli attributi¶
QField crea dei form simili ma non uguali a quelli di QGIS. I widget QGIS per i campi, sono supportati al meglio e ottimizzati per l'uso mobile.
Tipo di widget | Supporto | Note |
---|---|---|
Modifica testo | - HTML non è supportato - Input numerico viene imposto in base al tipo. |
|
Casella di controllo | ||
Mappa valori | ||
Nascosto | ||
Allegato | Questo campo è combinato con l'integrazione della fotocamera. Permette anche di aprire altri tipi di file come pdf e doc (se hai un visualizzatore appropriato) Allegato (impostazioni foto) | |
Data/Ora | ||
Intervallo | ||
Riferimento alla relazione | ||
Widget relazione | ||
Relazione valore | ||
Generatore UUID | ||
Widget QML / HTML | ||
Altri | Funding |
Editabile¶
L'impostazione editabile sui campi è rispettata.
Ricorda l'ultimo valore¶
QField offre un controllo molto più dettagliato sugli ultimi valori utilizzati e ignora le impostazioni di QGIS.
Nascondi modulo all'inserimento di un elemento¶
L'impostazione Nascondi modulo all'inserimento di un elemento è direttamente applicata al form QField.
Designer trascina e rilascia¶
Gruppi e tab creati nel designer "trascina e rilascia" sono supportati.
In the "Attributes Form," you can structure your forms using various containers, such as tabs and groups, and enhance interactivity by incorporating expression-based conditional visibility. By enabling the Drag and Drop Designer, you gain the flexibility to re-order attribute fields, as well as gaining access to widgets that are not directly tied to specific fields (e.g., HTML/QML widgets).
Configura un widget relazione¶
Preparazione da Desktop
Per maggiori informazioni consulta il capitolo sulle relazioni della Documentazione QGIS.
Il widget delle relazioni mostra tutti gli elementi figlii di riferimento in un elenco. È possibile aggiungerli, eliminarli e aprirli.
L'identificazione visiva delle voci della lista avviene tramite il Mostra Espressione del layer figlio.
Gestione chiavi¶
Poiché le chiavi primarie dei layer padre sono utilizzate come chiavi esterne negli elementi dei layer figli di riferimento, queste chiavi primarie devono essere conservate per l'uso anche dopo la sincronizzazione con i dati originali. Pertanto, si consiglia di utilizzare valori stabili come UUIDs per le chiavi primarie.
È possibile aggiungere già dei figli da un genitore che sta per essere aggiunto. Questa possibilità sarà bloccata se non esiste una chiave primaria valida sul genitore o i vincoli sono violati. Nel caso in cui l'aggiunta dell'elemento genitore viene annullata dopo che alcuni figli sono già stati aggiunti, anche i figli vengono eliminati.
Relazioni Molti-a-molti¶
Nelle relazioni molti-a-molti, secondo la configurazione della cardinalità nelle Proprietà del Layer Vettoriale in QGIS, l'aggiunta, l'eliminazione o l'apertura di una voce nella lista influisce direttamente sul layer figlio (nel caso di cardinalità diretta) o sulla tabella di collegamento (nel caso di cardinalità molti-a-uno).
Il secondo caso è di solito usato quando ci sono informazioni di relazione aggiuntive (es. percentuale) nella tabella di collegamento.
In caso di cardinalità molti-a-uno su relazioni molti-a-molti il Mostra Espressione deve essere impostato sulla tabella di collegamento.
Item Threshold Configuration for Value Map Editor Widgets¶
To enhance the user experience within QField, it is possible to control the item threshold at which point the value map editor widgets switch to a toggle buttons interface. This feature allows users to quickly access items in QField when there are few and providing a more intuitive interface when dealing with a large number of items.
To Activate Toggle Button Interface¶
-
Open Layer Properties by right-clicking on the desired layer and selecting 'Properties' from the context menu.
-
Navigate to the QField tab located within the Layer Properties dialog.
-
Here, you will find an option to specify the quantity of items that will trigger the transition to a toggle button interface. Enter the preferred threshold value according to your needs.
Configurare il Widget Allegati¶
Preparazione da Desktop
Il widget di tipo Allegato viene utilizzato con i campi che memorizzano il percorso ai file.
Può essere utilizzato per:
- mostrare e scattare foto o aggiungere immagini dalla galleria
- ascoltare e registrare clip audio
- mostrare e registrare video
- mostrare link a file esterni come PDF o documenti
Il percorso deve essere impostato su relativo. Immagini, audio, video, pdf e documenti sono quindi archiviati in una sottocartella del progetto, alla quale sta puntanto il link memorizzato nel campo di testo (textfield).
Note
QGIS 3.30 o versioni successive sono necessarie per la funzionalità audio e video
In QField vengono visualizzati gli allegati. Facendo clic sul simbolo delle icone la videocamera o la registrazione audio viene avviata per aggiornare le immagini, i video o gli audio con un nuovo media.
Durante la sincronizzazione anche la sottodirectory con le immagini, video, audio, pdf e documenti deve essere copiata.
L'opzione hyperlink sul widget degli allegati disabilita la funzionalità della fotocamera e abilita un collegamento ipertestuale per aprire un documento (pdf, doc, ...).
Percorso dell'allegato configurabile¶
Preparazione da Desktop
QFieldSync offre la possibilità di configurare il percorso degli allegati.
- Vai a Plugin QFieldSync >Proprietà Layer
Usa le espressioni per specificare il percorso degli allegati. Per impostazione predefinita, le immagini vengono salvate nella cartella "DCIM", le registrazioni audio vengono salvate nella cartella "audio" e i video vengono salvati in "video" con un timestamp come nome.
Configurare un Widget di Relazione dei Valori¶
Preparazione da Desktop
Il widget Value Relation offre i valori di una tabella correlata in una casella combinata. Puoi selezionare layer, colonna chiave e colonna valore. Sono disponibili diverse opzioni per modificare i comportamenti standard: consenti valore nullo, ordina per valore e consenti selezioni multiple. Il widget visualizzerà un menu a tendina o a selezione multipla degli elementi di riferimento.
Configurare la Visibilità Condizionale¶
Preparazione da Desktop
I gruppi possono essere nascosti in base a un'espressione. Questo è utile quando alcuni attributi sono richiesti solo in determinate condizioni. Come esempio immagina di mappare degli alberi. Alcuni di essi potrebbero avere una malattia e tu hai un elenco di possibili malattie. Per non ingombrare il modulo con molti campi, crea un gruppo e configura un'espressione di visibilità per il gruppo "malattie". Aggiungi un campo "malattia" con una casella di controllo. Solo quando la casella è selezionata, l'elenco delle malattie sarà disponibile.
Vediamo cosa abbiamo sul campo:
Definire Vincoli¶
Preparazione da Desktop
I campi attributo possono avere dei vincoli. I vincoli sono
espressioni che devono essere valutate con True
(o 1
) per poter
poter salvare il modulo. I vincoli sono configurati per ogni campo
e si può aggiungere una descrizione che verrà visualizzata se un
vincolo non è soddisfatto.
Casi di uso comune¶
Non puoi inserire un valore di elevazione superiore alla montagna più alta di questo paese.
"elevation" < 5000
è chiesto di inserire un idenfificatore.
"identifier" IS NOT NULL
Definire i valori predefiniti¶
Preparazione da Desktop
I campi possono essere configurati con valori predefiniti. I valori predefiniti vengono inseriti nel modulo dell'attributo quando si digitalizza un nuovo elemento. Sono visibili e possono essere modificati finché il campo è modificabile. I valori predefiniti possono essere basati sulla geometria o su variabili di espressione.
When creating expressions for projects intended to be used with QField, it is recommended to use layer names rather than layer IDs. This recommendation stems from the fact that during the project conversion process via QFieldSync, the resulting layers may receive different IDs, which can lead to incorrect expression evaluations. By using layer names, you ensure that expressions are evaluated consistently and accurately across different project states.
Variabili aggiuntive¶
Per maggiori informazioni sulla memorizzazione delle informazioni relative alla tua posizione negli attributi dell'oggetto, fai riferimento alla documentazione GNSS.
Per gli utenti di QFieldCloud, due variabili possono essere utilizzate nelle espressioni che includono i valori predefiniti degli attributi dei moduli:
- @cloud_username
che restituisce il nome dell'utente QFieldCloud attualmente connesso.
- @cloud_useremail
che restituisce l'indirizzo email dell'utente QFieldCloud attualmente connesso.
Casi di uso comune¶
Inserisci le informazioni di posizionamento come variabile:
@position_horizontal_accuracy
Inserisci l'ora e la data corrente:
now()
Inserisci la lunghezza della linea digitalizzata:
length($geometry)
Configura le variabili globali sul dispositivo e inseriscili.
@operator_name
Se si desidera assegnare un codice regionale in base alla posizione in cui viene inserita una nuova funzionalità, è possibile utilizzare un'espressione aggregata:
aggregate( layer:='regions', aggregate:='max', expression:="code", filter:=intersects( $geometry, geometry( @parent ) ) )
Per trasformare le coordinate ricevute da \@position_coordinate nel sistema di coordinate del tuo progetto:
x(transform(@position_coordinate, 'EPSG:4326', @project_crs ))
y(transform(@position_coordinate, 'EPSG:4326', @project_crs ))
::: {#snapping_results} Se vuoi utilizzare i risultati dello snapping dopo aver tracciato una linea, puoi utilizzare la variabile [\@snapping_results]{.title-ref}. Il codice seguente estrae il valore dell'attributo [id]{.title-ref} della corrispondenza di snapping del primo punto di una linea. :::
with_variable(
'first_snapped_point',
array_first( @snapping_results ),
attribute(
get_feature_by_id(
@first_snapped_point['layer'],
@first_snapped_point['feature_id']
),
'id'
)
)
Ricerca nei widget mappa valori e riferimento alla relazione¶
È possibile cercare dei valori in una widget relazione valore o riferimento della relazione usando la lente vicino al campo.
Nota
Definisci l'espressione di visualizzazione per i layer interessati, che verrà usata per la ricerca degli elementi. Questo è configurato in Proprietà Layer Vettore > Visualizza
Configurare Valore Completamento Automatico¶
Preparazione da Desktop
La casella di spunta "Usa completamento" deve essere selezionata per poter utilizzare il completamento automatico nella relazione dei valori.
Ecco un video che mostra come funziona su QField
Definisci i widget QML¶
I widget QML personalizzati possono essere utili per integrare azioni avanzate nei form. In questo esempio definiamo aggiungi un pulsante che apre una mappa e un'app di navigazione di terze parti. Ciò è utile per aprire, ad esempio, le navigazioni turn-by-turn sull'app nativa del dispositivo per l'utente.
import QtQuick 2.0
import QtQuick.Controls 2.0
Button {
width: 200
height: width/5
text: "Open in Maps"
onClicked: {
Qt.openUrlExternally(expression.evaluate("'geo:0,0?q=' || $y || ',' || $x"));
}
}
L'URI geo
sopra è adattato per funzionare con Android. Per Apple Maps l'URI può essere cambiato in 'geo:' || $y || ',' || $x
.