Tôi có một thiết lập tín hiệu cho một sự kiện xóa tính năng trên một lớp:
self.layer.featureDeleted.connect(self.feature_deleted)
Khi tôi thử và lấy một thuộc tính từ tính năng đã xóa trên vị trí, lỗi StopIteration sẽ bị ném (tức là nó không thể truy xuất tính năng này).
Tôi có thể nghĩ rằng tôi vẫn có thể truy xuất các thuộc tính từ một tính năng đã bị xóa trước khi các thay đổi đối với lớp được cam kết không? Mặt khác, tôi không thấy những gì sử dụng tham số fid là.
def feature_deleted(self, fid):
feature = self.layer.getFeatures(QgsFeatureRequest().setFilterFid(int(fid))).next()
idx = self.layer.fieldNameIndex('my_attribute')
print feature.attributes()[idx]
Làm cách nào tôi có thể truy cập các thuộc tính của tính năng bị xóa (trước khi các thay đổi đối với lớp được cam kết)?