คุณสามารถกำหนดฟังก์ชั่นที่เพิ่มชื่อไฟล์โครงการเป็นคุณสมบัติและเชื่อมต่อฟังก์ชั่นนี้กับเหตุการณ์ที่เพิ่มคุณสมบัติ คุณสามารถใช้รหัสต่อไปนี้เปลี่ยนชื่อของสนามเพื่อสิ่งที่คุณเลือก (ผมใช้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)