i want to change attributes values in a memory layer.
I already asked a similar question but i'm re-stuck on the problem and don't find any solution to this basic need.
Here is what i'm doing so far :
from PyQt4.QtCore import *from PyQt4.QtGui import * vl_r=QgsVectorLayer('Polygon?crs=epsg:2154','population','memory')pro_r = vl_r.dataProvider()pro_r.addAttributes([QgsField("name", QVariant.String)])pro_r.addAttributes([QgsField("pop", QVariant.Int)])vl_r.updateFields()QgsMapLayerRegistry.instance().addMapLayer(vl_r)fet = QgsFeature()dummy=pro_r.addFeatures([fet])print(pro_r.capabilitiesString())attrib={0:'hell',1:666}dummy=vl_r.dataProvider().changeAttributeValues({fet.id():attrib})print('Change values : ' + str(dummy))The value returned by 'dummy' is always True but i never see any change in the attributes table.
When i use a 'normal' layer (stored on disk) the change is made and is immediately visible without any additional command.
What could i be missing ? My code is so simple that i can't see what i forgot ...
Could anybody give me a working sample of attributes change in a memory Layer ?
Thanks for your help ...
أكثر...
I already asked a similar question but i'm re-stuck on the problem and don't find any solution to this basic need.
Here is what i'm doing so far :
from PyQt4.QtCore import *from PyQt4.QtGui import * vl_r=QgsVectorLayer('Polygon?crs=epsg:2154','population','memory')pro_r = vl_r.dataProvider()pro_r.addAttributes([QgsField("name", QVariant.String)])pro_r.addAttributes([QgsField("pop", QVariant.Int)])vl_r.updateFields()QgsMapLayerRegistry.instance().addMapLayer(vl_r)fet = QgsFeature()dummy=pro_r.addFeatures([fet])print(pro_r.capabilitiesString())attrib={0:'hell',1:666}dummy=vl_r.dataProvider().changeAttributeValues({fet.id():attrib})print('Change values : ' + str(dummy))The value returned by 'dummy' is always True but i never see any change in the attributes table.
When i use a 'normal' layer (stored on disk) the change is made and is immediately visible without any additional command.
What could i be missing ? My code is so simple that i can't see what i forgot ...
Could anybody give me a working sample of attributes change in a memory Layer ?
Thanks for your help ...
أكثر...