Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
17
Help us understand the problem. What is going on with this article?

More than 5 years have passed since last update.

@yuichy

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

概要

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) プラグインの内容を記述していく
17
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
17
Help us understand the problem. What is going on with this article?