আমি এই কোডটি দিয়ে বিশিষ্ট নাম দ্বারা বৈশিষ্ট্য বৈশিষ্ট্যগুলি সেট করার চেষ্টা করি
pr = layer.dataProvider()
pr.addAttributes([QgsField("test", QVariant.Int)])
layer.updateFields()
for feature in layer.getFeatures():
attrName = 'test'
feature[attrName] = 1
তবে ফলস্বরূপ আমি সমস্ত ক্ষেত্রে নুল। যদি আমি ব্যবহার করি
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)
একই ফলাফলের সাথে (এপিআই রেফারেন্সের সূচক এবং নাম সহ বৈশিষ্ট্যটির জন্য দুটি সেটঅ্যাট্রিবিউট পদ্ধতি রয়েছে)