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.