Bạn có thể định nghĩa một hàm thêm tên tệp dự án làm thuộc tính và kết nối hàm này với sự kiện có thêm tính năng. Bạn có thể sử dụng mã sau đây, thay đổi tên của trường thành bất cứ thứ gì bạn chọn (tôi đã sử dụng Name
) và dán nó vào Bảng điều khiển Python . Bây giờ bất cứ khi nào bạn thêm một tính năng mới, trường sẽ được điền với tên dự án hiện tại:
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)