PyQGIS マウスイベントサンプル


はじめに

このサンプルは、QGISのマップ上でマウスカーソルを動かしたりボタンをクリックした場合に、その場所の座標をPythonコンソールに表示することができます。


使い方

ここからzipファイルをダウンロードしてインストールします。
Pythonコンソールを表示した状態でプラグインを実行すると、マップ上でマウスを動かしたりクリックする度に座標が表示されます。

f:id:Chiakikun:20200530141706p:plain

このような感じです。


コード

~略~

    def start(self):
        maptool = MouseEventSample(self.canvas)

~略~

    # このツールのアイコンを押下したときに呼ばれる
    def execSample(self):

~略~
                self.start()

~略~
            
class MouseEventSample(QgsMapTool):
    def __init__(self, canvas):
        QgsMapTool.__init__(self, canvas)

    def canvasMoveEvent(self, event):
        print('マウス移動:' + str(self.toMapCoordinates(event.pos())))

    def canvasPressEvent(self, event):
        if event.button() == Qt.LeftButton:
            print('左クリック!' + str(self.toMapCoordinates(event.pos())))

        if event.button() == Qt.RightButton:
            print('右クリック!' + str(self.toMapCoordinates(event.pos())))

12行目 このプラグインが実行されたらここからstart()が呼ばれて...
4行目 MouseEventSampleがmaptoolに登録されます。
20行目~ maptoolに登録されている間、マウスを動かしたりクリックするとこの辺りのメソッドが実行されます。

ソース全文はこちらです。


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