[Qgis-developer] Dataprovider.select() doesnt exist

Nathan Woodrow madmanwoo at gmail.com
Tue May 21 16:23:19 PDT 2013


We removed the select() method in the new version to make way for
multithreading in the future.

You can translate you code into this:

for feature in lnk_shp.getFeatures():
    for attr in feature.attributes():
      attr_list.append(attr.toString())


On Wed, May 22, 2013 at 9:18 AM, Carles Boïls Gisbert <fainssix at gmail.com>wrote:

> Hi everyone,
>
> I am using QGIS 1.9 Master in Ubuntu 12.10. I am trying to develop a
> plugin and need to extract data from attributes tables of the .shp.
>
> I created a GUI for the user can Open shp from the computer and the code
> recognize the shp file and I can get the name of the .shp, name of columns,
> etc. but I can not get the values for each row and work with them.
>
> I follow the cookbook but when I type "provider.select(allAttrs)" the
> python console in QGIS says:
>
> "AttributeError:QgsVectorDataProvider' object has no attribute 'select'
>
> here is the code I used: (i didn't copy the definition of GUI because
> with that is any prolem)
>
> from PyQt4 import QtGui, QtCore
> from PyQt4 import *
> from qgis.core import *
> from PyQt4.QtCore import *
> from PyQt4.QtGui import *
>
> import qgis.utils, sys
> # supply path to where is your qgis installed
> QgsApplication.setPrefixPath("/usr/", True)
> #load providers
> QgsApplication.initQgis()
>
> *******
>
>         self.ln_lnk.setText(str(self.filename_lnk))
>
>         lnk_shp = QgsVectorLayer(self.filename_lnk, 'casires', 'ogr')
>
>         if not lnk_shp.isValid():
>             print "doesnt work"
>             QtGui.QMessageBox.Warning(self, "Warning", "shp not valid",
> QtGui.QMessageBox.Ok)
>
>         try:
>             provider = lnk_shp.dataProvider()
>             feat = QgsFeature()
>             allAttrs = provider.attributeIndexes()
>
>
>             provider.select(allAttrs)
>             attr_list =[]
>
>
>             while provider.nextFeature(feat):
>
>                 attrs = feat.attributeMap()
>                 for(k,attr) in attrs.iteritems():
>                     attr_list.append(attr.toString())
>
>         except:
>             self.ln_save.setText("Falsch")
>
>
> I try the same plugin in a oldest version of QGIS 1.7.5 and it works or at
> least doesn't show this "Falsch". I am wondering during a  week and have no
> idea to sole this. I would really apreciate if someone can solve this
> problem because is really important to create this plugin and for tha I
> need to take the data from the attribute table, if not I can not continuous
> anymore.
>
> Does anyone what is wrong and why my QGIS doesnt recognize the
> provider.select(allAttrs)?
> I would like to know if somebody knows how to install a oldest version of
> QGIS (e.g. 1.7.5)??
>
> thank you so much!!
>
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20130522/c7414040/attachment.html>


More information about the Qgis-developer mailing list