[Qgis-developer] set attributes of a new feature

Siki Zoltan siki at agt.bme.hu
Sat Nov 15 06:21:21 PST 2014


Dear List Members,

i've got in trouble creating new point feature in a shape file using 
python (QGIS 2.2 on Fedora):

feat = QgsFeature()
feat.setFields(lay.dataProvider().fields(), True)
feat.setAttribute(feat.fieldNameIndex('point_id'), xxx)

The fieldNameIndex call makes QGIS crash

QGIS died on signal 11[Thread debugging using libthread_db enabled]
[New Thread 0x7f60fe021700 (LWP 12981)]
0x00000034ef8ac30d in waitpid () from /lib64/libc.so.6
[Current thread is 1 (Thread 0x7f610488b860 (LWP 12980))]
#0  0x00000034ef8ac30d in waitpid () from /lib64/libc.so.6
No symbol table info available.
#1  0x000000000055d0d9 in qgisCrash(int) ()
No symbol table info available.
#2  <signal handler called>
No symbol table info available.
#3  0x00000000005bc8bb in QVector<QgsFields::Field>::count() const ()
No symbol table info available.
...

lay is a valid layer:
(Pdb) p lay.name()
u'coord_sample'

The feature has attributes:
(Pdb) len(feat.attributes())
6

but
(Pdb) p feat.attributes()
[None, None, None, None, None, None]

but
(Pdb) lay.dataProvider().fields()[0].name()
u'point_id'

How can I populate attributes of the new feature?

Thanks,
Zoltan


More information about the Qgis-developer mailing list