Відповіді:
Якщо ви клацніть правою кнопкою миші ваш шар і перейдіть до Properties > Fields
цього, а потім натисніть кнопку Text Edit
, ви можете встановити значення за замовчуванням (або ввівши значення, або використовуючи вираз), які автоматично з’являться в таблиці атрибутів.
На жаль, використання виразу на зразок $rownum
(який повинен отримати вам унікальний ідентифікатор для ваших функцій) не працює (я здогадуюсь, тому що функцію потрібно зробити першою?). Але ми можемо створити функцію, яка враховує кількість створених функцій та додає 1. Ви можете отримати доступ до редактора функцій, як показано на зображенні:
Потім у Редакторі функцій створіть новий файл або відредагуйте існуючий та скористайтеся таким кодом:
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
Клацніть Завантажити, потім перейдіть на вкладку Вираз поруч із нею та вставте вираз:
update()
Потім натисніть кнопку ОК, і ви побачите значення попереднього перегляду:
Натисніть кнопку ОК , Застосувати і т. Д. І тепер, сподіваємось, коли ви створите функцію, вона автоматично створить унікальний ідентифікатор у вибраному вами полі.
Ви можете використовувати плагін "Автополя" для автоматичного оновлення атрибутів при створенні чи зміні векторних функцій
Я думаю, що ви не можете встановити значення за замовчуванням під час створення нової функції, але ви можете спробувати виконати наступні дії:
id
типу Int@row_number
яке дасть унікальні вали відповідно до номера рядка