LoginSignup
16
17

More than 5 years have passed since last update.

QGISプラグインの作り方(パッケージ生成編)

Last updated at Posted at 2015-08-01

概要

QGISはPythonでプラグインを書くことができます。QGISと連動させる形でPythonを色々と利用ができますが、プラグインを記述することはその一つの使い方です。

QGISとPythonでできることは公式サイトの以下ページに記述があります。
http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/

プラグイン作成についての公式サイトの該当ページ
http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/plugins.html#developing-plugins

あるユーザー(ただしGoogler)による英語での手順記事
http://www.qgistutorials.com/en/docs/building_a_python_plugin.html

必要なファイル一式を生成できるプラグインがあるので、ここではそれを使ったファイル一式を用意するまでの手順を以下に記します。

必要なツールのインストール

  • Plugin Builder (プラグイン生成プラグイン)
  • Qt Designer (GUIを編集するツール)
  • Plugin Reloader (プラグイン上の機能を修正した際に、アプリの再起動なしに修正内容を反映させることができるプラグイン。必須ではないです)

使ってみる

QGISのプラグインメニューからPlugin Builderを起動します。

スクリーンショット 2015-08-01 15.53.03.png

必要な項目を記載して、OKボタンを押します。
保存場所を聞かれます。どこに保存することもできますが、QGISがプラグインフォルダと認識している場所に保存しないとQGISからは認識されません。

スクリーンショット 2015-08-01 16.34.37.png

Macの場合、以下の場所が、デフォルトのプラグインを置く場所です。
/Users/(username)/.qgis2/python/plugins

スクリーンショット 2015-08-01 15.55.19.png

.が頭につくフォルダは初期設定のFinderでは表示されないためGUIでは移動できませんが、「移動」→「フォルダへ移動…」というメニューを選び、上記ファイルパスを入力すると確実です。もしくはCUIでフォルダを移動させてください。

プラグイン・アイコン

QGIS上で表示するアイコン画像をカスタマイズすることができます。ただし用意されたツールでQGISが読み込める用に変換してあげる必要があります。このファイルは必須にもかかわらず、このツールでファイルを生成した状態には含まれていないので、カスタマイズするしないにかかわらず、一度は変換命令を実行する必要があります。
プラグインのディレクトリ内で以下のコマンドを実行します。

pyrcc4 -o resources_rc.py resources.qrc

アイコン画像の有りかをXML形式で記述したresources.qrcが生成されます。

UIの編集

  • ***._dialog_base.ui(はプラグイン名)をQt Creatorで編集します。

スクリーンショット 2015-08-01 16.41.29.png

プラグイン機能をファイルへ記述する

  • ***.py(はプラグイン名)に記述していきます。
  • 外部ライブラリを読み込む際は、このファイルの冒頭に記述します。 -最低限必要な関数は以下のとおりです。
    • init QGISからアクセスできるようにするために必要
    • initGui() プラグインが読み込まれた際に実行される
    • unload() プラグインが終了する際に実行される
    • run(self) プラグインの内容を記述していく
16
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
17