QGISのプラグイン作成 属性編集ダイアログのサンプル


はじめに

f:id:Chiakikun:20200531141501p:plain

このサンプルは、ベクタレイヤの地物を一つ選択した状態でプラグインを実行すると、上の画像のような属性編集ダイアログが表示されます。


使い方

ここからzipファイルをダウンロードしてインストールします。インストール後、属性編集したい地物を選択して、プラグインを実行してください。


コード

class AttributeEditorSample(QgsMapTool):

    def start(self):
        self.layer = self.iface.activeLayer()

        features = self.layer.selectedFeatures()

~略~

        self.layer.startEditing() # レイヤを編集状態にする

        # 選択しているフューチャーの属性フォーム表示
        self.attdlg = self.iface.getFeatureForm(self.layer, features[0])
        self.attdlg.setMode(QgsAttributeEditorContext.SingleEditMode)
        self.attdlg.finished.connect(self.commitEdit)
        self.attdlg.show()


    def commitEdit(self, result):
        if result == 1:
            self.layer.commitChanges()
        else:
            self.layer.rollBack()
        self.attdlg.finished.disconnect(self.commitEdit)

~略~

10行目 アクティブなレイヤを編集状態にします。
13行目~16行目 編集ダイアログのタイプを設定して表示します。また、編集が完了した時に呼び出すメソッドも登録します。
21行目 編集内容を反映します。
コード全文


最後までご覧いただき、ありがとうございました。