Eu gostaria de adicionar no campo de uma camada um valor padrão. Quero dizer, toda vez que um novo recurso é criado, esse campo é preenchido automaticamente com o valor padrão.
No meu caso, o valor padrão seria a variável @project_filename (nome do arquivo do projeto).
Não consigo encontrar essa funcionalidade em lugar algum.
Saudações,
Você pode definir uma função que inclua o nome do arquivo do projeto como um atributo e conectar essa função ao evento que adiciona recursos. Você pode usar o código a seguir, alterar o nome do campo para o que você escolher (eu usei
Name
) e colá-lo no Console Python . Agora, sempre que você adicionar um novo recurso, o campo será preenchido com o nome do projeto atual:fonte
featureAdded
é acionado é na verdade um ID de recurso. E é tudo o que você precisa para ligarchangeAttributeValue
. Para aupdate
função, você precisaria apenas de 2 linhas (usando os nomes das variáveis):idx = layer.fieldNameIndex('Name')
elayer.changeAttributeValue(featureAdded, idx, project_name)
.