Risposte:
Se fai clic con il pulsante destro del mouse sul livello e vai a, Properties > Fields
quindi fai clic su Text Edit
, puoi impostare i valori Predefiniti (digitando un valore o usando un'espressione) che appariranno automaticamente nella tabella degli attributi.
Sfortunatamente, usare un'espressione come $rownum
(che dovrebbe procurarti ID unici per le tue funzionalità) non funziona (la mia ipotesi è perché la funzione deve essere impegnata per prima?). Ma possiamo creare una funzione che conta il numero di funzioni create e aggiunge 1. È possibile accedere all'editor delle funzioni come mostrato nell'immagine:
Quindi nell'editor delle funzioni, crea un nuovo file o modificane uno esistente e usa il seguente codice:
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
Fai clic su Carica, quindi vai alla scheda Espressione accanto ad essa e inserisci l'espressione:
update()
Quindi fai clic su OK e dovresti vedere un valore di anteprima:
Fai clic su OK , Applica ecc. E ora si spera che quando crei una funzione, creerà automaticamente un ID univoco nel campo prescelto.
È possibile utilizzare il plug-in "Campi automatici " per gli aggiornamenti automatici degli attributi durante la creazione o la modifica di funzioni vettoriali
Penso che non sia possibile impostare valori predefiniti durante la creazione di una nuova funzionalità, ma è possibile provare a risolvere il seguente problema:
id
con il tipo Int@row_number
che produrrà valori univoci in base al numero di riga