Réponses:
Si vous cliquez avec le bouton droit sur votre calque et cliquez sur Properties > Fields
puis sur Text Edit
, vous pouvez définir des valeurs par défaut (soit en tapant une valeur, soit en utilisant une expression) qui apparaîtront automatiquement dans la table attributaire.
Malheureusement, l'utilisation d'une expression comme $rownum
(qui devrait vous donner des identifiants uniques pour vos fonctionnalités) ne fonctionne pas (je suppose que la fonctionnalité doit être validée en premier?). Mais nous pouvons créer une fonction qui compte le nombre de fonctionnalités réalisées et en ajoute 1. Vous pouvez accéder à l' éditeur de fonctions comme indiqué dans l'image:
Ensuite, dans l'éditeur de fonctions, créez un nouveau fichier ou modifiez-en un existant et utilisez le code suivant:
from qgis.core import *
from qgis.gui import *
@qgsfunction(args='auto', group='Custom')
def update(feature, parent):
layer = qgis.utils.iface.activeLayer()
x = layer.featureCount()
return x + 1
Cliquez sur Charger puis accédez à l' onglet Expression à côté et insérez l'expression:
update()
Cliquez ensuite sur OK et vous devriez voir une valeur d'aperçu:
Cliquez sur OK , Appliquer, etc. et maintenant, espérons-le, lorsque vous créerez une fonctionnalité, elle créera automatiquement un identifiant unique dans le champ que vous avez choisi.
Vous pouvez utiliser le plugin "AutoFields" pour les mises à jour automatiques des attributs lors de la création ou de la modification des entités vectorielles
Je pense que vous ne pouvez pas définir de valeurs par défaut lors de la création d'une nouvelle fonctionnalité, mais vous pouvez essayer le travail suivant:
id
avec le type Int@row_number
qui produira des valeurs uniques selon le numéro de ligne