dayjournal memo

Total 992 articles!!

QGIS #006 - プラグイン作成

Yasunori Kirimoto's avatar

QGISでプラグインを作成するためには下記方法でおこないます。


プラグインを作成するには4つのファイルが必要になります。


ファイル名説明
init_.pyプラグイン情報と実行するクラスを記述
sample.pyメイン処理を記述
metadata.txtプラグインの基本情報を記述 (QGIS 2.0以上)
icon.pngアイコン画像

「C:\Users\ユーザー名\.qgis2\python\plugins」の中に任意のフォルダを作成。

上記ファイルをそのフォルダの中に保存します。

QGIS_006_03


_init_.py


# -*- coding: utf-8 -*-

#---------------------------------------------------------------------------
#     Name:        Sample Plugin
#     Purpose:     サンプルプラグインの作成
#
#     Author:      dayjournal
#
#     Created:     xx/xx/2015
#     Copyright:   (c) dayjournal 2015
#---------------------------------------------------------------------------

def classFactory(iface):
    from sample import SamplePlugin
    return SamplePlugin(iface)

「sample.py」から「SamplePlugin」クラスを読み込む


def classFactory(iface):
    from sample import SamplePlugin
    return SamplePlugin(iface)
    

sample.py


# -*- coding: utf-8 -*-

from PyQt4.QtCore import *
from PyQt4.QtGui import *
from qgis.core import *

import os

class SamplePlugin:

    def __init__(self, iface):
        self.iface = iface

    def initGui(self):

        path = os.path.dirname(__file__) + u'\icon.png'

        self.action = QAction(QIcon(path), "sample", self.iface.mainWindow())
        self.iface.addToolBarIcon(self.action)
        self.iface.addPluginToMenu("Sample Plugin", self.action)

    def unload(self):

        self.iface.removePluginMenu("Sample Plugin", self.action)
        self.iface.removeToolBarIcon(self.action)
        

QtとQGISとOSの機能を読み込む


from PyQt4.QtCore import *
from PyQt4.QtGui import *
from qgis.core import *

import os

クラスを宣言


class SamplePlugin:

QGISのインターフェイスを読み込む


def __init__(self, iface):
    self.iface = iface
    

プラグインのload時の処理


def initGui(self):

アイコンの相対パス設定


path = os.path.dirname(__file__) + u'\icon.png'

メニューとツールバーの表示


self.action = QAction(QIcon(path), "sample", self.iface.mainWindow())
self.iface.addToolBarIcon(self.action)
self.iface.addPluginToMenu("Sample Plugin", self.action)

プラグインのunload時の処理


def unload(self):

メニューとツールバーの非表示


self.iface.removePluginMenu("Sample Plugin", self.action)
self.iface.removeToolBarIcon(self.action)

metadata.txt


[general]

name = Sample Plugin

description = サンプルプラグイン

about = サンプルプラグインを作成しました。

category = sample

tags = sample,plugin

homepage = https://github.com/

repository = https://github.com/

author = dayjournal

email = dayjournal@gmail.com

version = 1.0

changelog =
    1.0 - 初版作成

icon = icon.png

qgisMinimumVersion = 2.8

基本情報の記載内容は下記になります。

プラグイン名 題名 説明文 カテゴリ タグ ホームページ リポジトリ 作成者名 連絡先 プラグインバージョン 更新履歴 アイコン画像 QGISの最低動作バージョン


ファイル作成後、QGISを起動すると下記のように表示されます。

エラーが起きた場合はうまく表示されないので修正が必要です。 QGIS_006_01


プラグインを「プラグイン管理」で利用可にすると下記のようにプラグインが実行可能になります。 QGIS_006_02


ここまででプラグインを作成することができます。 あとは実行したい処理の記述を追加していくことになります。



book

Q&A


QGISプログラミング入門