QGISのプラグイン作成 LayerTreeViewのサンプル


はじめに

このサンプルは、ツリービューからレイヤを選択してアクティブにした時に、そのことをPythonコンソールに表示します。


使い方

ここからzipファイルをダウンロードしてインストールします。

 

f:id:Chiakikun:20200611220049p:plain

プラグイン実行中に、レイヤウィンドウでレイヤを選択すると...

 

f:id:Chiakikun:20200611220102p:plain

選択されていたレイヤ名と、現在選択されているレイヤ名がPythonコンソールに表示されます。


コード

class LayerTreeViewSample(QgsMapTool):

    def changeLayer(self, layer):

        if (layer == None): # レイヤウィンドウに何も無い状態
            self.currentlayer = None
            self.cleared.emit()
            return

        if self.currentlayer != None:
            print(self.currentlayer.name() + 'が非アクティブになりました。')

        print(layer.name()+'がアクティブになりました。')
        self.currentlayer = layer


    def start(self):
        self.currentlayer = self.iface.layerTreeView().currentLayer()
        self.iface.layerTreeView().currentLayerChanged.connect(self.changeLayer)

~略~

    def finish(self):
        self.iface.layerTreeView().currentLayerChanged.disconnect(self.changeLayer)

~略~

18行目 現在アクティブなレイヤ名を取得しておきます。
11行目 ツリービューのアクティブレイヤが変わったら、アクティブだったレイヤ名を表示して...
13行目 アクティブになったレイヤ名を表示させます。
コード全文


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