Вы можете определить функцию, которая добавляет имя файла проекта в качестве атрибута, и связать эту функцию с событием, которое добавляет функции. Вы можете использовать следующий код, изменить имя поля на любое другое (я использовал Name
) и вставить его в консоль Python . Теперь, когда вы добавляете новую функцию, поле будет заполнено именем текущего проекта:
import os
# Get project name
project = QgsProject.instance()
project_name = os.path.basename(project.fileName())
# Set active layer
layer = qgis.utils.iface.activeLayer()
# Define function to select added feature and add attribute to field "Name"
def update(featureAdded):
idx = layer.fieldNameIndex('Name')
layer.changeAttributeValue(featureAdded, idx, project_name)
# Connect "featureAdded" event to "select" function
layer.featureAdded.connect(update)