[Qgis-developer] Qgis Api - select all features of a vector layer
Barry Rowlingson
b.rowlingson at lancaster.ac.uk
Tue Nov 9 11:46:19 EST 2010
On Tue, Nov 9, 2010 at 4:22 PM, kimaidou <kimaidou at gmail.com> wrote:
> Hi again
>
> Still working on my python plugin...
>
> I need to simply select all the features of a chosen vector layer. In
> QgsVectorLayer api, there is no method "selectAllFeatures()"
>
> So I use this piece of code to achieve it
> http://osgeo.pastebin.com/Ma9DxgKR
That's an interesting approach! My selectplus plugin has a 'select
all' function which does this:
def doit(self):
layer = self.iface.mapCanvas().currentLayer()
layer.setSelectedFeatures(layerIds(layer))
return None
where layerIds is:
def layerIds(layer):
ids = []
p = layer.dataProvider()
allAttrs = p.attributeIndexes()
p.select(allAttrs)
f = QgsFeature()
while p.nextFeature(f):
ids.append(f.id())
return ids
Your rectangle overlay should be pretty quick, but maybe my collecting
all the feature IDs is quicker?
Barry
More information about the Qgis-developer
mailing list