QGISでプラグインを作成する その1
参考にしたもの
QGIS Coding and Compilation Guideを参考にしています。
必要なファイル
最低限必要なファイルとして下記を作成します。
- __init__.py
- plugin.py
- resources_rc.qrc(これは無くてもいいんですが、後々のため入れときます)
__init__.py
最初に呼び出されるファイルになります。
プラグインに関する情報とメインのクラスを記述します。
# -*- coding: utf-8 -*- import os,sys sys.path.append(r"C:\Program Files\eclipse\plugins\org.python.pydev.debug_1.6.3.2010100513\pysrc") import pydevd pydevd.settrace() def name(): return "プラグインテスト" def description(): return "プラグインを追加出来るかテストです" def version(): return "1.0" def qgisMinimumVersion(): return "1.0" def classFactory(iface): from plugin import pluginTest return pluginTest(iface)
最初の数行はEclipseでのdebugのため記述しています。
name(),description(),version(),qgisMinimumVersion()の他にauthorName()も使えるようです。
メインの処理を記述(plugin.py)
ファイル名は__init__.pyのclassFactory()内の記述とあっていれば何でもいいです。
このファイルの中にメインのクラスを記述します。
# -*- coding: utf-8 -*- #Import the PyOt and QGIS libraries from PyQt4.QtCore import * from PyQt4.QtGui import * from qgis.core import * #Initialize Qt resources from file resources.py import resources_rc class pluginTest: def __init__(self, iface): #Save reference to the QGIS interface self.iface = iface def initGui(self): pass def unload(self): pass
__init__()の中身はお決まりで。QGISのinterfaceを保持しておきます。
メインのクラスに必ず必要な関数としては、
- initGui()
- unload()
になります。プラグインがloadされた際に実行されるのがinitGui()、unloadされる際に実行されるのがunload()になります。
とりあえず中身は空にしています。