prova la soluzione che ghi ha suggerito Martin a Alessandro Pasotti a
Brighton
morale aggiungere la chiamata:

<layer>.updateFields()

dalla lista di qgis-developer (a cui ti consiglio di iscriverti se vuoi
fare il porting e cercare li dentro)

---------- Forwarded message ----------
From: Alessandro Pasotti <[email protected]>
Date: 7 October 2013 10:51
Subject: Re: [Qgis-developer] addAttribute to memory layer
To: "Ing. Pierluigi De Rosa" <[email protected]>
Cc: QGIS Developer Mailing List <[email protected]>


2013/10/7 Ing. Pierluigi De Rosa <[email protected]>

> **
> Dear All,
> I'm converting a plugin with new API but I still doen't figure out how to
> add attribute to feature.
> I know it's a stupid question but i think the cookbook is till not updated?
> http://qgis.org/it/docs/pyqgis_developer_cookbook/vector.html#add-features
>


You can try this method:

 https://github.com/elpaso/qgis-geocoding/blob/master/GeoCoding.py#L289


2013/10/14 Geo DrinX <[email protected]>

>
>  Non demoralizzarti. Anche noi stiamo migrando plugin grossi (mesi di
>> lavoro anche per noi).
>> Se puoi spiegarci meglio il problema, potremo aiutarti.
>>
>
> Ti ringrazio.
> Per farla breve, devo creare un memoryLayer e devo inserire un punto con
> un record associato:
>
>
> ------------------------------------------------------------------------------------------------------------
> geomType = "Point" + '?crs=proj4:' +
> QgsProject.instance().readEntry("SpatialRefSys","/ProjectCRSProj4String")[0]
> DronePlan = "DronePlan_"
> memLay = QgsVectorLayer(geomType, DronePlan, 'memory')
>
> pr2 = memLay.dataProvider()
>
> res = pr2.addAttributes( [QgsField('Campo')])
>
> fields = memLay.pendingFields()
> f = QgsFeature(fields)
>
> f['Campo'] = 100
>
> ------------------------------------------------------------------------------------------------------------
>
> Ma la console risponde:
> KeyError: 'Campo'
>
> ???  cosa vuole ?
>
> _______________________________________________
> [email protected]
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> I messaggi di questa lista non hanno relazione diretta con le posizioni
> dell'Associazione GFOSS.it.
> 666 iscritti al 22.7.2013
>
_______________________________________________
[email protected]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni 
dell'Associazione GFOSS.it.
666 iscritti al 22.7.2013

Rispondere a