मैं इस कोड के साथ विशेषता नाम द्वारा फीचर विशेषताएँ सेट करने का प्रयास करता हूं
pr = layer.dataProvider()
pr.addAttributes([QgsField("test", QVariant.Int)])
layer.updateFields()
for feature in layer.getFeatures():
attrName = 'test'
feature[attrName] = 1
लेकिन परिणाम में मेरे पास सभी क्षेत्रों में NULL है। अगर मैं उपयोग करता हूं
feature.setAttributes([1])
यह ठीक से काम करता है।
मैं क्या गलत करूँ? फ़ीचर [AttrName] = 1 काम क्यों नहीं करता है?
अद्यतन : इस समाधान का पता लगाएं
pr = layer.dataProvider()
pr.addAttributes([QgsField("test", QVariant.Int)])
layer.updateFields()
for feature in layer.getFeatures():
attrName = 'test'
feature[attrName] = 1
pr.changeAttributeValues({feature.id() : {pr.fieldNameMap()[attrName] : 1}})
feature.setAttribute(attrName, 1)औरfeature.setAttribute(layer.fieldNameIndex(attrName), 1)एक ही परिणाम के साथ (एपीआई संदर्भ में इंडेक्स और नाम के साथ फीचर के लिए दो सेटएट्रिब्यूट विधियां हैं)