Если вы щелкнете правой кнопкой мыши по своему слою и перейдете к 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()
Затем нажмите OK, и вы должны увидеть значение предварительного просмотра:
Нажмите « ОК» , « Применить» и т. Д., И теперь, надеюсь, когда вы создадите функцию, она автоматически создаст уникальный идентификатор в выбранном вами поле.