プラグイン開発1

QGISの拡張機能であるプラグインの開発入門というテーマで、QGISで利用できるプラグインの開発手法について、この章と次の章で解説します。

プラグインの基本構成

この章ではPythonコンソールから一旦離れて、Pluginに必要なファイルをテキストエディタを使用して編集していきます。 QGISの起動時に読み込まれるPythonプラグインは、

  • QGISインストールディレクトリ/python/plugins
  • ユーザーのホームディレクトリ/AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins のどちらかに入れておきます。 通常、オリジナルのプラグインを作成した場合は、後者に配置することになります。Windowsを想定しますが、
  • C:\Users\ユーザー名\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\PluginTest というような形で、プラグインごとのディレクトリを作成することになります。 QGISはpluginsディレクトリ内の各ディレクトリを見ていき、metadata.txtというファイルからプラグインの情報を読み取ります。また、各プラグインのQGISへの追加は、__init__.py から行われます。__init__.py内には、処理本体が記述されたクラスを返す関数を記載しておきます。通常、処理本体は別なファイルに記述する方わかりやすいので、名前は任意で良いですが、最低もう1ファイル作成することになります。

プラグインビルダー

プラグインに必要なファイルを個別に用意していくことも可能ですが、Plugin Builder 3プラグインを使用すると、最低限必要な内容を揃えてくれるので便利です。 プラグインの追加はQGISのメニューバーからプラグイン > プラグインの管理とインストール...を選択します。

add_plugin1

Plugin Builder 3を選択し、インストールしましょう。

add_plugin2

インストールが終了したら、早速Plugin Builder 3を起動しましょう。

open_plugin

ウィンドウが表示されます。ここで作成するプラグインの基本情報を入力します。

plugin_builder_1

まずはプラグインの基本情報として、

Class name:
プラグインのクラス名です。Pythonファイル内で使用されます。キャメルケース(複合語をひと綴りとして、要素語の最初を大文字)で記述します。
Plugin name:    プラグインマネージャー等で表示されるプラグイン名
Description:    プラグインマネージャー等で表示されるプラグインの説明文
Module name:    Pythonのモジュール名
Version number: プラグインのバージョン
Minimum QGIS version:   プラグインが動作するQGISの最低バージョン
Author/Company: プラグイン作者名
Email address:  作者メールアドレス

を入力します。

続いてプラグインの詳細な説明を記述します。ここでは適当な文を入れておくだけにしましょう。

plugin_builder_2

作成するプラグインのテンプレートとして3種類用意されています。”Tool Button with dialog”を選択しておいてください。UIとしてプラグイン実行時に表示されるダイアログも一緒に作成してくれます。メニューへ表示する文字列と、どのメニューに表示するかも設定しておきます。

plugin_builder_3

多言語対応やヘルプ等の雛形も一緒に作成することができます。ただし、今回は最小限のプラグインを作成してみることを目的としますので、すべてのチェックを外しておきましょう。

plugin_builder_4

プラグインの不具合報告先を明確にしておくため、Bug tracker、RepositoryのURLの入力を求められます。ここでは適当な文字列を入れておくだけにしましょう。ただし、きちんとしたプラグインを公開する場合は、GitHub等で公開することが推奨されてます。

plugin_builder_5

ここまでの入力が終わると、プラグイン書き出し先のディレクトリの指定になります。ユーザーのホームディレクトリ/AppData\Roaming\QGIS\QGIS3\profiles\default\python\pluginsに書き出してください。

plugin_builder_6

Generateをクリックするとプラグインのフォルダが作成されたことを示すメッセージウィンドウが現れます。OKをクリックしてウィンドウを閉じましょう。

plugin_builder_7

ディレクトリの確認

エクスプローラーからユーザーのホームディレクトリ/AppData\Roaming\QGIS\QGIS3\profiles\default\python\pluginsを開き、plugin buiderによりファイルが作成されていることを確認します。

plugin_builder_folder

resouces.pyの作成

さて、書きだされたプラグインを実行してみたいところですが、その前にもう一手間必要です。メニューバーのプラグインとツールバーに表示されるアイコン画像のファイル名は、 アイコンとして使用する画像ファイルへのパスを記述した、Qtのリソースファイルの中に記述されています。ファイル名は、resources.qrcとなっています。リソースファイルはxmlで記述されており、内容は下記になります。

<RCC>
    <qresource prefix="/plugins/PluginTest" >
        <file>icon.png</file>
    </qresource>
</RCC>

このファイル をPythonのコードへ変換しておく必要がありますので、pyrcc4コマンドで変換を行います。Windowsの場合にはOSGeo4W shellを立ち上げましょう。ダブルクリックで起動すると、コマンドプロンプトが立ち上がります。

osgeo4w_shell

OSGeo4W shell上でプラグインを作成しているディレクトリに移動してください。

cd ユーザーのホームディレクトリ/AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\PluginTest`

移動した後、

>call qt5_env.bat
>call py3_env.bat
>pyrcc5 -o resources.py resources.qrc

commmand

エクスプローラーでresources.pyが作成されたことを確認します。

resouces

これで最小限のプラグイン作成は終了です。

作成したプラグインの実行

QGISを立ち上げてみましょう。 プラグイン > プラグインの管理とインストールの中から”plugin test”を探してインストールしてみてください。

install_plugin

メニューバーからプラグイン > Plugin Testを選択するとウィンドウが表示され、プラグインがインストールされていることがわかります。

display

空のdialogが表示されるだけのプラグインですが、実行を確認できます。

execute

教材の利用に関するアンケート

 本プロジェクトでは、教材の改良を目的とした任意アンケートを実施しています。ご協力いただける方は、アンケートにお進みください。ご協力のほどよろしくお願いいたします。

※ 本アンケートの成果は、教材の改良のほか、学会での発表等の研究目的でも利用します。

results matching ""

    No results matching ""