Você pode definir uma função que inclua o nome do arquivo do projeto como um atributo e conectar essa função ao evento que adiciona recursos. Você pode usar o código a seguir, alterar o nome do campo para o que você escolher (eu usei Name
) e colá-lo no Console Python . Agora, sempre que você adicionar um novo recurso, o campo será preenchido com o nome do projeto atual:
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)