Odpowiedzi:
Jeśli klikniesz warstwę prawym przyciskiem myszy , a Properties > Fields
następnie przejdziesz do opcji Text Edit
, możesz ustawić wartości domyślne (wpisując wartość lub używając wyrażenia), które pojawią się automatycznie w tabeli atrybutów.
Niestety użycie wyrażenia typu $rownum
(które powinno zapewnić unikalne identyfikatory dla twoich funkcji) nie działa (domyślam się, ponieważ funkcja musi być najpierw zatwierdzona?). Ale możemy stworzyć funkcję, która zlicza liczbę wykonanych funkcji i dodaje 1. Możesz uzyskać dostęp do edytora funkcji, jak pokazano na obrazku:
Następnie w Edytorze funkcji utwórz nowy plik lub edytuj istniejący i użyj następującego kodu:
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
Kliknij Załaduj, a następnie przejdź do zakładki Wyrażenie obok i wstaw wyrażenie:
update()
Następnie kliknij OK i powinieneś zobaczyć wartość podglądu:
Kliknij OK , Zastosuj itp. I mam nadzieję, że teraz, gdy utworzysz funkcję, automatycznie utworzy unikalny identyfikator w wybranym polu.
Możesz użyć wtyczki „AutoFields” do automatycznych aktualizacji atrybutów podczas tworzenia lub modyfikowania funkcji wektorowych
Myślę, że nie można ustawić wartości domyślnych podczas tworzenia nowej funkcji, ale można spróbować wykonać następujące czynności:
id
typu Int@row_number
która da unikalne wartości zgodnie z numerem wiersza