आप एक फ़ंक्शन को परिभाषित कर सकते हैं जो प्रोजेक्ट फ़ाइलनाम को एक विशेषता के रूप में जोड़ता है और इस फ़ंक्शन को उस ईवेंट से जोड़ता है जो सुविधाओं को जोड़ता है। आप निम्न कोड का उपयोग कर सकते हैं, आपके द्वारा चुने गए (मैंने उपयोग किए गए Name
) फ़ील्ड का नाम बदलकर उसे पायथन कंसोल में पेस्ट कर सकते हैं । अब जब भी आप कोई नई सुविधा जोड़ते हैं, तो फ़ील्ड वर्तमान प्रोजेक्ट नाम के साथ आबाद हो जाएगी:
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)