環境
- QGIS 3.28 LTR
QGISプラグインにおけるQActionのsetWhatsThisについて
QGISのプラグインのサンプルコードを見ていると、QAction
オブジェクトの setWhatsThis()
という関数を呼び出している例が見られます。
QGIS公式ドキュメントのサンプルコードでも以下のように呼び出されています。
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
の文字列は確認できません。
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? モードに移行してカーソルが変化します。
この状態でプラグインのアイコンをクリックすることで、setWhatsThis()
のテキストの表示が可能です。
関連記事
QGISのプラグインの実装例をこちらの記事で紹介しています。