Formulário do atributo¶
O QField cria formulários semelhantes, mas não são iguais ao QGIS. Os widgets de campo do QGIS são suportados com base no melhor esforço e otimizados para ser usado em dispositivos móveis.
Tipo de widget | Suporte | Notas |
---|---|---|
Editar Texto | - HTML não é suportado - introdução de dados numéricos é aplicada com base no tipo de campo. |
|
Caixa de Seleção | ||
Mapa de Valores | ||
Escondido | ||
Anexo | Este campo é combinado com a integração da câmera. Também é capaz de abrir outros ficheiros como pdf e doc (se tiver um visualizador apropriado) Anexo (configurações de fotos) | |
Data Tempo | ||
Intervalo | ||
Referência de Relações | ||
Widget de Relação | ||
Relação de Valor | ||
Gerador UUID | ||
QML / HTML Widget | ||
Outros | Funding |
Editável¶
O parâmetro editável dos campos é respeitado.
Lembrar os últimos valores¶
QField oferece um controlo muito mais minucioso sobre os últimos valores usados e ignora a definição do QGIS.
Suprimir Formulário do Atributo¶
A configuração suprimir formulário do atributo é aplicada diretamente no formulário QField.
Design de formulários arrastar e largar¶
Grupos e separadores a partir do designer de formulários Arrastar e Largar são suportados.
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).
Configurar Widget de Relação¶
Preparação no Desktop
Para mais informações, consulte o capítulo de relações na Documentação Oficial do QGIS.
O widget de relação mostra todos os elementos filhos de referência numa lista. É possível adicionar, apagar e abri-las.
A identificação visual das entradas da lista é feita com uma Expressão de visualização na camada filha.
Gestão de chaves¶
Como as chaves primárias dos pais são utilizadas como chaves estrangeiras nos elementos filhos de referência, essas chaves primárias devem ser guardadas para uso após a sincronização com os dados originais. Portanto, recomendamos o uso de valores estáveis, como UUIDs, para chaves primárias.
É possível adicionar ligações filhas de uma referência pai que está prestes a ser adicionado. Essa possibilidade será bloqueada se não existir chave primária válida no pai ou as restrições forem violadas. Caso a adição do elemento pai seja cancelada depois de alguns elementos filhos já tiverem sido adicionados, os filhos também serão excluídos.
Relações Muitos-Para-Muitos¶
Nas relações de muitos para muitos, de acordo com a configuração de cardinalidade nas Propriedades da camada vetorial QGIS, a adição, exclusão ou abertura de uma entrada na lista afeta diretamente a camada filha (na cardinalidade direta) ou a tabela de ligação (em muitas para uma cardinalidade).
O segundo caso é geralmente utilizado quando há informações adicionais de relação (por exemplo, percentagem) na tabela de ligação.
No caso da cardinalidade muitos-para-um nas relações muitos-para-muitos, a Expressão de Exibição precisa ser definida na tabela de ligação.
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.
Configure Attachment Widget¶
Preparação no Desktop
O tipo de widget Anexo é usado com campos que armazenam o caminho para os ficheiros.
Pode ser usado para:
- show and take photos or add pictures from the gallery
- ouvir e gravar clips de som
- mostrar e gravar vídeos
- mostrar ligações para ficheiros externos para documentos ou PDFs
The path should be set to relative. The pictures, audios, videos, pdf and docs are stored then in a sub-directory of the project, where the link stored in the textfield is pointing to.
Note
QGIS 3.30 or newer is required for the audio and video functionality
In QField the attachments are displayed. By clicking the icons symbol the camera or audio record is started to update the pictures, videos or audios with a new media.
On synchronization the sub-directory with the pictures, videos audios, pdf and docs has to be copied as well.
A opção hiperligação no widget de anexo desativará a funcionalidade da camera e ativa uma hiperligação para abrir um documento (pdf, doc, ...).
Caminho configurável para os anexos¶
Preparação no Desktop
QFieldSync provides the possibility to configure the path of attachments.
- Go to QFieldSync plugin > Layers Properties
Use expressions to specify the path of the attachments. By default, pictures are saved into the "DCIM" folder, audio recordings are saved into the "audio" folder and videos are saved into "video" with a timestamp as name.
Configurar Widget de Relação¶
Preparação no Desktop
O widget Relação de Valor oferece valores de uma tabela relacionada de uma lista de opções. Podes selecionar a camada, chave da coluna e valor da coluna. Várias opções estão disponíveis para mudar os comportamentos padrão: permitir valores nulos, ordenar por valor, e permitir múltipla escolha. O widget irá exibir uma lista simples ou uma lista de múltipla seleção com os elementos referenciados.
Configurar Visibilidade por Condições¶
Preparação no Desktop
Os grupos podem ser ocultados com base numa expressão. Esta ação é útil quando certos atributos são necessários apenas sob certas condições. Como exemplo, imagine o inventário de árvores. Algumas delas podem ter uma doença e tem uma lista de possíveis doenças. Para não sobrecarregar o formulário com muitos campos, poderá fazer um grupo e configurar uma expressão de visibilidade para um grupo "doenças". Adicione um campo "doença" com uma caixa de seleção. Só quando a caixa de seleção estiver marcada aparecerá a lista de doenças disponíveis.
Vamos ver o que temos no campo:
Definir restrições¶
Preparação no Desktop
Os campos do atributo podem ter restrições anexadas. As restrições são
expressões que precisam ser avaliadas como True
(ou 1
) para serem
capaz de guardar o formulário. As restrições são configuradas por campo
e uma descrição pode ser adicionada e que será mostrada se uma
restrição não é satisfeita.
Casos de uso comuns¶
Não pode introduzir um valor de elevação maior que a montanha mais alta deste país.
"elevation" < 5000
É necessário preenchê-lo com um identificador.
"identificador" IS NOT NULL
Definir valores padrão¶
Preparação no Desktop
Os campos podem ter valores padrão configurados. Os valores padrão são inseridos no formulário do atributo ao digitalizar um novo elemento. Eles são visíveis e podem ser modificados desde que o campo seja editável. Eles pode ser baseado na geometria ou nas variáveis de expressão.
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.
Variáveis adicionais¶
For more information regarding storing information related to your position in object attributes, refer to the deticated GNSS documentation.
Para utilizadores do QFieldCloud, duas variáveis podem ser usadas em expressões incluindo os valores padrão dos formulários de atributo:
- @cloud_username
devolve o nome do utilizador que atualmente tem a sessão iniciada no QFieldCloud.
- @cloud_usermail
devolve o email que atualmente tem a sessão iniciada no QFieldCloud.
Casos de uso comuns¶
Inserir informação de posicionamento como variável:
@position_horizontal_accuracy
Iserir a data e hora actual:
now()
Inserir o comprimento da linha digitalizada:
length($geometry)
Configurar as variáveis globais no dispositivo e inseri-las.
@operator_name
Se você deseja atribuir um código de região com base no local onde um novo elemento é inserido, poderá fazê-lo usando uma expressão agregada:
aggregate( layer:='regions', aggregate:='max', expression:="code", filter:=intersects( $geometry, geometry( @parent ) ) )
Para transformar as coordenadas recebidas de \@position_coordinate para o sistema de coordenadas do seu projeto:
x(transform(@position_coordinate, 'EPSG:4326', @project_crs ))
y(transform(@position_coordinate, 'EPSG:4326', @project_crs ))
::: {#snapping_results} Se quiser usar os resultados do snapping depois de desenhar uma linha, é possível. Use a variável [\@snapping_results]{.title-ref}. O seguinte código extraí o valor do atributo [id]{.title-ref} do snap correspondente ao primeiro ponto de uma linha. :::
with_variable(
'first_snapped_point',
array_first( @snapping_results ),
attribute(
get_feature_by_id(
@first_snapped_point['layer'],
@first_snapped_point['feature_id']
),
'id'
)
)
Pesquisar num widget value relation e relation reference¶
É possível pesquisar um valor num widget relação valor ou relação referência usando o ícone lupa ao lado do campo.
Note
Definir a display expression para as camadas envolvidas, isto será usado para pesquisar elementos. Isto está configurado no separador em Vector Layer Properties > Display
Configurar o Valor de Auto-preenchimento¶
Preparação no Desktop
A caixa de seleção "Usar auto-preenchimento" deve ser marcada para poder usar o preenchimento automático no value relation.
Aqui está um vídeo mostrando como funciona no QField
Definir os widgets QML¶
Widgets QML personalizados podem ser úteis para integrar ações avançadas em formulários. Neste exemplo, definimos adicionar um botão que abre um mapa à parte de uma aplicação de navegação. Este tipo de ações é útil para abrir, por ex. navegações passo a passo no aplicativo nativo do dispositivo para o utilizador.
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"));
}
}
O URI geo
acima é adaptado para funcionar com o Android. Para o Apple Maps, o URI pode ser alterado para 'geo:' || $y || ',' || $ x
.