Est-il possible d'afficher notre message personnalisé dans la barre d'état QGIS en utilisant python?

14

Existe-t-il un moyen d'afficher notre message personnalisé dans la barre d'état Qgis en utilisant python? Tout comme dans arcgisIApplication.statusbar.message(0) = "Please wait..."

comme ça, y a-t-il une option pour afficher la barre de progression dans Qgis comme IApplication.progressbar.show()

venkat
la source

Réponses:

34

StatusBar

Il y a iface.mainWindow (). StatusBar () qui retourne un QStatusBar

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

entrez la description de l'image ici

MessageBar

À partir de QGIS 2.0, il y a aussi QgsMessageBar qui est capable d'afficher des messages discrets

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

entrez la description de l'image ici

Avancée

La barre de message peut également afficher n'importe quel QWidget (comme un QProgressBar ) avec un bouton de fermeture et un timeout (5 secondes dans l'exemple).

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 )

entrez la description de l'image ici

Plus d'informations sur QgsMessageBar peuvent être trouvées dans cette réponse de NathanW Comment adresser le nouveau QgsMessageBar "terminé" en Python? Merci d'avoir signalé Curlew

Héritage

Dans la console python pour QGIS <1.9, ce serait:

qgis.utils.iface.mainWindow().statusBar().showMessage( u"Hello World" )
Matthias Kuhn
la source
Merci beaucoup Matthias..y a-t-il une option pour la barre de progression?
venkat
Dans le QgsMessageBar, vous pouvez afficher tout type de widget. Je ne saurais pas que cela est possible dans la barre d'état.
Matthias Kuhn
Je suis très nouveau dans qgis et python .. pourriez-vous s'il vous plaît me donner un exemple pour QgsMessageBar? et quel est le sens de l'utilisation du préfixe «u» dans «Hello world»
venkat
Le préfixe u est pour les chaînes unicode. Cela fonctionnera également sans cela. Pour QgsMessageBar, vous devez obtenir la version de développement actuelle de QGIS ou attendre la sortie de 2.0.
Matthias Kuhn
3
Voir également la réponse de Nathans sur la façon de pousser un widget vers la nouvelle barre de messages gis.stackexchange.com/questions/57067/…
Curlew