新しいフィールドを作る
#レイヤの指定
lyr = iface.activeLayer()
#フィールドの定義
new_field = QgsField(name='fieldName', type=QVariant.String, typeName='String', len=254)
#定義したフィールドの適応
lyr.dataProvider().addAttributes([new_field])
lyr.updateFields()
- QgsFieldで作成するフィールドの設定内容。
- name:フィールド名
- type:フィールドタイプ。stringの場合は
QVariant.String
、integerならQVariant.Int
、realならQVariant.Double
- len:フィールドの長さ
- prec:精度(小数点以下の数値長さ)の指定
フィールドに値を入力する
for f in lyr.getFeatures():
f.setAttribute("fieldName", value)
lyr.updateFeature(f)
lyr.commitChanges()