Ответы:
Если вы щелкнете правой кнопкой мыши по своему слою и перейдете к 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, и вы должны увидеть значение предварительного просмотра:
Нажмите « ОК» , « Применить» и т. Д., И теперь, надеюсь, когда вы создадите функцию, она автоматически создаст уникальный идентификатор в выбранном вами поле.
Вы можете использовать плагин «AutoFields» для автоматического обновления атрибутов при создании или изменении векторных объектов
Я думаю, что вы не можете установить значения по умолчанию при создании новой функции, но вы можете попробовать следующую работу:
idтипа Int.@row_numberчто даст уникальные вейлы в соответствии с номером строки