¿Es posible mostrar nuestro mensaje personalizado en la barra de estado de QGIS usando python?

14

¿Hay alguna forma de mostrar nuestro mensaje personalizado en la barra de estado de Qgis usando python? Justo como en arcgisIApplication.statusbar.message(0) = "Please wait..."

así hay alguna opción para mostrar la barra de progreso en Qgis como IApplication.progressbar.show()

Venkat
fuente

Respuestas:

34

Barra de estado

Hay iface.mainWindow (). StatusBar () que devuelve un QStatusBar

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

ingrese la descripción de la imagen aquí

MessageBar

A partir de QGIS 2.0 también hay QgsMessageBar que puede mostrar mensajes discretos

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

ingrese la descripción de la imagen aquí

Avanzado

La barra de mensajes también puede mostrar cualquier QWidget (como una QProgressBar ) con un botón de cierre y un tiempo de espera (5 segundos en el ejemplo).

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 )

ingrese la descripción de la imagen aquí

NathanW puede encontrar más información sobre QgsMessageBar en esta respuesta. ¿Cómo abordar el nuevo QgsMessageBar "Completado con tareas" en Python? Gracias por señalar Curlew

Legado

En la consola de Python para QGIS <1.9 sería:

qgis.utils.iface.mainWindow().statusBar().showMessage( u"Hello World" )
Matthias Kuhn
fuente
Muchas gracias Matías ... ¿hay alguna opción para la barra de progreso?
venkat
En QgsMessageBar puede mostrar cualquier tipo de widget. No sabría que esto es posible en la barra de estado.
Matthias Kuhn el
Soy muy nuevo en qgis y python ... ¿podría darme un ejemplo para QgsMessageBar? y ¿cuál es el significado de la utilización del prefijo 'u' en "Hola mundo"
venkat
El prefijo u es para cadenas unicode. También funcionará sin esto. Para QgsMessageBar, debe obtener la versión de desarrollo actual de QGIS o esperar el lanzamiento de 2.0.
Matthias Kuhn el
3
También vea la respuesta de Nathans sobre cómo insertar un widget en la nueva barra de
Curlew