Можно ли показать наше пользовательское сообщение в строке состояния QGIS, используя python?

14

Есть ли способ показать наше пользовательское сообщение в строке состояния Qgis, используя python? Прямо как в ArcgisIApplication.statusbar.message(0) = "Please wait..."

так есть ли возможность показать прогрессбар в Qgis как IApplication.progressbar.show()

Venkat
источник

Ответы:

34

Статус бар

Существует iface.mainWindow (). StatusBar (), которая возвращает QStatusBar.

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

введите описание изображения здесь

MessageBar

Начиная с QGIS 2.0 есть также QgsMessageBar, который может отображать ненавязчивые сообщения

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

введите описание изображения здесь

продвинутый

На панели сообщений также может отображаться любой QWidget (например, QProgressBar ) с кнопкой закрытия и тайм-аутом (в данном примере 5 секунд).

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. Как обратиться к новому QgsMessageBar «Выполнено задание» в Python? Спасибо, что указали на Керлью

наследие

В консоли Python для QGIS <1.9 это будет:

qgis.utils.iface.mainWindow().statusBar().showMessage( u"Hello World" )
Матиас Кун
источник
Большое спасибо Маттиас .. есть ли вариант для прогрессбар?
Venkat
В QgsMessageBar вы можете отобразить любой виджет. Я бы не знал, что это возможно в строке состояния.
Матиас Кун
Я очень новичок в qgis и python .. не могли бы вы дать мне пример для QgsMessageBar? и что означает использование префикса 'u' в "Hello world"
venkat
Префикс u предназначен для строк Unicode. Это также будет работать без этого. Для QgsMessageBar вы должны получить текущую версию QGIS для разработки или дождаться выпуска 2.0.
Матиас Кун
3
Также смотрите ответ Натана о том, как перенести
Curlew,