การใช้คอนโซล Python ของ QGIS 2.4 ฉันพยายามแสดงเฉพาะเซ็ตย่อยของคุณสมบัติเลเยอร์ ฉันจัดการเพื่อรับคุณสมบัติทั้งจากเลเยอร์:
featuresIterator = layer.getFeatures(QgsFeatureRequest().setFilterExpression ( u'"field"=4'))
และจาก dataProvider:
featuresIterator = layer.dataProvider().getFeatures(QgsFeatureRequest().setFilterExpression ( u'"field"=4'))
(ฉันไม่แน่ใจที่จะเข้าใจความแตกต่าง)
สิ่งที่ฉันต้องการบรรลุในตอนนี้คือการแสดงเฉพาะคุณสมบัติเหล่านี้ ในลักษณะเดียวกับที่ใช้ในการสร้างแบบสอบถามจาก GUI ฉันไม่ทราบว่าจะต้องมีการจัดการที่ระดับการแสดงผล (ซึ่งจะทำให้คุณลักษณะบางอย่างและไม่ใช่คุณสมบัติอื่น ๆ ) หรือในระดับผู้ให้บริการข้อมูล (ซึ่งจะให้มุมมองข้อมูลที่มีเพียงชั้นเท่านั้น เซตย่อยที่ต้องการ) หรือที่อื่น ๆ ในระหว่างนั้น
คำตอบจาก @Nathan นั้นถูกต้อง นอกจากนี้เรายังสามารถรับสิ่งที่กำหนดโดย setSubsetString () หรือตัวสร้างแบบสอบถามโดยใช้ layer.subsetString () ถ้ามันว่างเปล่าจะมีการส่งคืนสตริงว่าง ''
—
Zac