0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

QGISプラグイン開発におけるQActionのsetWhatsThisについて

Last updated at Posted at 2023-06-09

環境

  • QGIS 3.28 LTR

QGISプラグインにおけるQActionのsetWhatsThisについて

QGISのプラグインのサンプルコードを見ていると、QAction オブジェクトの setWhatsThis() という関数を呼び出している例が見られます。

QGIS公式ドキュメントのサンプルコードでも以下のように呼び出されています。

mainPlugin.py
  def initGui(self):
    # create action that will start plugin configuration
    self.action = QAction(QIcon("testplug:icon.png"),
                          "Test plugin",
                          self.iface.mainWindow())
    self.action.setObjectName("testAction")
    self.action.setWhatsThis("Configuration for test plugin")
    self.action.setStatusTip("This is status tip")
    self.action.triggered.connect(self.run)

しかし、上記のような処理で作成したプラグインのアイコンをQGISのGUI上でマウスホバーして表示されるのは QAction の引数で指定した Test plugin の文字列で、setWhatsThis() で指定した Configuration for test plugin の文字列は確認できません。

mousehover.png

PyQtのドキュメントを参照すると、setWhatsThis() で指定した文字列は What’s This? モードに移行することで確認できるようです。

ただ、QGIS 3.28 LTRのインターフェイスで確認する限り、この What’s This? モードに移行する機能は提供されていないようです。調べてみると、以前はヘルプメニューに存在していたものの、setWhatsThis() による説明を記載している機能が少なかったため、このメニューは削除されたようです。

なので、QGISのプラグイン開発においては基本的に setWhatsThis() は使用しないことで問題なさそうです。

参考:Pythonコンソールを使用して What’s This? モードに移行する方法

QGISのインターフェイス上では What’s This? モードに移行する方法は提供されていませんが、Pythonコンソールを使うことで呼び出しが可能です。

QGISのPythonコンソールを開き、以下の関数を呼び出します。

QWhatsThis.enterWhatsThisMode()

すると、What’s This? モードに移行してカーソルが変化します。

console.png

この状態でプラグインのアイコンをクリックすることで、setWhatsThis() のテキストの表示が可能です。

whatsthis.png

関連記事

QGISのプラグインの実装例をこちらの記事で紹介しています。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?