Sử dụng bảng điều khiển python QGIS 2.4, tôi đang cố gắng chỉ hiển thị một tập hợp con của các tính năng lớp. Tôi đã quản lý để có được các tính năng cả hai từ lớp:
featuresIterator = layer.getFeatures(QgsFeatureRequest().setFilterExpression ( u'"field"=4'))
và từ DataProvider:
featuresIterator = layer.dataProvider().getFeatures(QgsFeatureRequest().setFilterExpression ( u'"field"=4'))
(Tôi không chắc chắn để hiểu sự khác biệt).
Những gì tôi muốn đạt được bây giờ là chỉ hiển thị các tính năng này. Theo cách chính xác giống như người ta sẽ sử dụng trình tạo truy vấn từ GUI. Tôi không biết liệu điều này có phải được quản lý ở cấp độ kết xuất hay không (sẽ kết xuất một số tính năng chứ không phải các tính năng khác) hoặc ở cấp độ của nhà cung cấp dữ liệu (chỉ cung cấp lớp cho chế độ xem dữ liệu chỉ chứa tập hợp con mong muốn), hoặc một nơi nào đó ở giữa.
Câu trả lời từ @Nathan là đúng. Chúng ta cũng có thể lấy những gì được thiết lập bởi setSubsetString () hoặc Query Builder bằng layer.subsetString (). Nếu nó trống, thì một chuỗi trống '' được trả về.
—
Zac Wang