Czy można wyświetlać nasz niestandardowy komunikat w pasku stanu QGIS przy użyciu Pythona?

14

Czy jest jakiś sposób, aby wyświetlić nasz niestandardowy komunikat w pasku stanu Qgis przy użyciu Pythona? Tak jak w arcgisIApplication.statusbar.message(0) = "Please wait..."

istnieje taka opcja, aby wyświetlić pasek postępu w Qgis like IApplication.progressbar.show()

venkat
źródło

Odpowiedzi:

34

Pasek stanu

Istnieje iface.mainWindow (). StatusBar (), który zwraca QStatusBar

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

wprowadź opis zdjęcia tutaj

MessageBar

Począwszy od QGIS 2.0 istnieje również QgsMessageBar, który może wyświetlać dyskretne komunikaty

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

wprowadź opis zdjęcia tutaj

zaawansowane

Pasek komunikatów może także wyświetlać dowolny QWidget (np. QProgressBar ) z przyciskiem zamykania i limitem czasu (w tym przykładzie 5 sekund).

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 )

wprowadź opis zdjęcia tutaj

Więcej informacji na temat QgsMessageBar można znaleźć w tej odpowiedzi NathanW. Jak odpowiedzieć na nowy QgsMessageBar „Zadanie zakończone” w Pythonie? Dzięki za wskazanie Curlew

Dziedzictwo

W konsoli Pythona dla QGIS <1.9 byłoby to:

qgis.utils.iface.mainWindow().statusBar().showMessage( u"Hello World" )
Matthias Kuhn
źródło
Wielkie dzięki Matthias .. czy jest jakaś opcja dla paska postępu?
venkat
W QgsMessageBar możesz wyświetlić dowolny rodzaj widżetu. Nie wiedziałbym, że jest to możliwe na pasku stanu.
Matthias Kuhn
Jestem bardzo nowy w qgis i python .. czy mógłbyś podać przykład QgsMessageBar? i co oznacza używanie przedrostka „u” w „Hello world”
venkat
Prefiks u jest dla ciągów Unicode. Bez tego będzie działać. W przypadku QgsMessageBar musisz pobrać aktualną wersję programistyczną QGIS lub poczekać na wydanie 2.0.
Matthias Kuhn
3
Zobacz także odpowiedź Nathans na temat przekazywania widżetu do nowego paska wiadomości gis.stackexchange.com/questions/57067/…
Curlew