Ответы:
Если вы щелкнете правой кнопкой мыши по своему слою и перейдете к 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
что даст уникальные вейлы в соответствии с номером строки