Puede definir una función que agregue el nombre de archivo del proyecto como un atributo y conectar esta función con el evento que agrega características. Puede usar el siguiente código, cambiar el nombre del campo a lo que elija (lo usé Name
) y pegarlo en la Consola Python . Ahora, cada vez que agregue una nueva función, el campo se completará con el nombre del proyecto actual:
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)