En utilisant la console python de QGIS 2.4, j'essaie d'afficher uniquement un sous-ensemble des fonctionnalités d'une couche. J'ai réussi à obtenir les fonctionnalités à la fois de la couche:
featuresIterator = layer.getFeatures(QgsFeatureRequest().setFilterExpression ( u'"field"=4'))
et du fournisseur de données:
featuresIterator = layer.dataProvider().getFeatures(QgsFeatureRequest().setFilterExpression ( u'"field"=4'))
(Je ne suis pas sûr de comprendre la différence).
Ce que je veux réaliser maintenant, c'est afficher uniquement ces fonctionnalités. De la même manière que l'on utiliserait le générateur de requêtes de l'interface graphique. Je ne sais pas si cela doit être géré au niveau du rendu (qui rendrait certaines fonctionnalités et pas d'autres), ou au niveau du fournisseur de données (qui ne fournirait à la couche qu'une vue sur les données contenant uniquement le sous-ensemble voulu), ou quelque part entre les deux.
Réponses:
La méthode que vous recherchez s'appelle setSubsetString
la source