Je voudrais ajouter dans le champ d'un calque une valeur par défaut. Je veux dire, chaque fois qu'une nouvelle fonctionnalité est créée, ce champ serait automatiquement rempli avec la valeur par défaut.
Dans mon cas, la valeur par défaut serait la variable @project_filename (nom de fichier du projet).
Je ne trouve cette fonctionnalité nulle part.
Cordialement,
Vous pouvez définir une fonction qui ajoute le nom de fichier du projet en tant qu'attribut et connecter cette fonction à l'événement qui ajoute des fonctionnalités. Vous pouvez utiliser le code suivant, changer le nom du champ en celui que vous choisissez (j'ai utilisé
Name
) et le coller dans la console Python . Maintenant, chaque fois que vous ajoutez une nouvelle fonctionnalité, le champ sera rempli avec le nom du projet actuel:la source
featureAdded
est déclenché, est en fait un identifiant de fonctionnalité. Et c'est tout ce dont vous avez besoin pour appelerchangeAttributeValue
. Dans laupdate
fonction, vous auriez juste besoin de 2 lignes (en utilisant vos noms de variables):idx = layer.fieldNameIndex('Name')
etlayer.changeAttributeValue(featureAdded, idx, project_name)
.