Pythonを使用してQGISステータスバーにカスタムメッセージを表示することは可能ですか?


14

Pythonを使用してQgisステータスバーにカスタムメッセージを表示する方法はありますか?arcgisのようにIApplication.statusbar.message(0) = "Please wait..."

そのようなQgisでプログレスバーを表示するオプションがあります IApplication.progressbar.show()

回答:


34

ステータスバー

ありiface.mainWindow()。ステータスバー()を返すQStatusBarは、

iface.mainWindow().statusBar().showMessage( u"Hello World" )

ここに画像の説明を入力してください

メッセージバー

QGIS 2.0からは、控えめなメッセージを表示できるQgsMessageBarもあります

iface.messageBar().pushInfo(u'My Plugin says', u'Hey there')

ここに画像の説明を入力してください

高度な

メッセージバーには、閉じるボタンとタイムアウト(この例では5秒)を含むQWidget(QProgressBarなど)も表示できます。

from PyQt4.QtGui import QProgressBar
from qgis.gui import QgsMessageBar
msgBar = iface.messageBar()

pb = QProgressBar( msgBar )
msgBar.pushWidget( pb, QgsMessageBar.INFO, 5 )

msg = msgBar.createMessage( u'Hello World' )
msgBar.pushWidget( msg, QgsMessageBar.WARNING, 5 )

ここに画像の説明を入力してください

QgsMessageBarの詳細については、NathanWのこの回答を参照してください。Pythonで新しい「タスク完了」QgsMessageBarに対処する方法は? Curlewを指摘してくれてありがとう

レガシー

QGIS <1.9のpythonコンソールでは、次のようになります。

qgis.utils.iface.mainWindow().statusBar().showMessage( u"Hello World" )

Matthiasに感謝します。プログレスバーにオプションはありますか?
ベンカット

QgsMessageBarでは、あらゆる種類のウィジェットを表示できます。これがステータスバーで可能かどうかはわかりません。
マティアスクーン

私はqgisとpythonを初めて使用します。QgsMessageBarの例を教えてください。そして「世界こんにちは」で「U」プレフィックス使用しての意味は何ですか
ヴェンカト

uプレフィックスはUnicode文字列用です。これなしでも動作します。QgsMessageBarの場合、QGISの現在の開発バージョンを取得するか、2.0のリリースを待つ必要があります。
マティアスクーン

3
また、新しいmessagebarのにウィジェットをプッシュする方法についてネイサンズの答えを参照gis.stackexchange.com/questions/57067/...
カーリュー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.