Чи можливо показувати наше користувальницьке повідомлення у рядку стану QGIS за допомогою python?


14

Чи є спосіб відобразити наше користувальницьке повідомлення у рядку стану Qgis за допомогою python? Так само, як у аркгізіIApplication.statusbar.message(0) = "Please wait..."

наприклад, чи є будь-який варіант показу панелі прогресу у подібних Qgis IApplication.progressbar.show()

Відповіді:


34

Рядок стану

Існує iface.mainWindow (). StatusBar (), який повертає QStatusBar

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

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

Повідомлення

Починаючи з 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? Дякуємо, що вказали на Curlew

Спадщина

У консолі пітона для 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.