waigani's diary

QGISを中心にFOSS4Gをいじくる

QGISでプラグインを作成する - 環境構築

プラグイン作成の環境構築を行ってみます。

前提

QGISでアプリケーションを作成する - 環境構築まで行っていることを前提としています。

External ToolへQGISを設定

[External Tool Configurations]を開きます。

[New Configuration]を作成し、[Name]は何でもいいですが"QGIS"を、[Location]にはQGISへのパス"C:\OSGeo4W\bin\qgis.bat"を設定します。

設定がおわりましたら、[Apply]→[Run]を実行します。
QGISが起動することを確認すればOKです。

projectの作成

新しいプロジェクトを作成します。
QGISのユーザーpluginのディレクトリは、

 C:\Documents and Settings\ユーザー名\.qgis\python\plugins

になります。

[project name]は適当に、[Directory]は上述のユーザーpluginディレクトリ、[Grammar version]は"2.5"、[Interpreter]は設定済みの"OSGEO"、[Create default 'src'・・・]はチェックせずに[Finish]を選択します。


作成されたプロジェクトへプラグインを入れるディレクトリを作成します。ここでは"test"としました。

"test"の中へ、OSGeo4WでQGISをインストールする際に一緒に入ってくるプラグインのソースをコピーしてしまいます。
ここでは、

 C:\OSGeo4W\apps\qgis\python\plugins\GdalTools

を丸ごとコピーしてしまいました。

こんなイメージです。


ソースへ追加

QGISから最初に参照される__init__.pyに下記コードを加えます。
パスは環境に合わせて書き換えてください。

 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 "test"

と書き換えてプラグイン名を変更しておきました。今回の設定が成功したのか確かめるためです。

DEBUG

"debug perspective"に切り替えます。

続けて、PyDevのデバッグサーバーを起動します。

[Console]にデバッグサーバーのポート番号は出力されますので、起動を確認してください。

[External Tool]から設定済みのQGISを選択します。

これで起動が始まります。
[resume]を何回か押すとQGISが起動します。
途中の関数で数回止まるみたいです。

起動したQGISプラグインマネージャから、読み込ませたプラグインの名前があるか確認してください。

GdalToolsを勝手にコピーして2重に読み込ませている状態になります。[ラスタ]というメニューが2つあることが確認できます。

breakpointを作っておけば、途中で止めることも可能です。

DEBUG出来る環境が出来たことは確認出来ました。
後は1からプラグインを作ってみたいとこです・・・