¿Cómo abordar el nuevo QgsMessageBar "Tarea completada" en Python?

12

Estoy realmente sorprendido de los enormes pasos que ha dado el desarrollo de QGIS en los últimos meses. ¡El nuevo conjunto de iconos, el mejorado compositor de impresión y muchos más cambios que se verán en QGIS 2.0 son realmente increíbles!

Entre muchas otras mejoras interesantes también está esta ingeniosa barra de tareas azul, que me parece muy atractiva. El texto dice: Guardar completado: Exportar a archivo vectorial terminado

¿Es posible abordar esta barra en Python para scripts y complementos (por ejemplo, para mostrar un pequeño mensaje después de los cálculos terminados)? Estoy haciendo esta pregunta aquí, porque creo que muchos desarrolladores de QGIS también visitan este sitio de preguntas y respuestas.

PD: La barra solo es visible en QGIS dev y solo para algunas operaciones.

Zarapito
fuente

Respuestas:

14

Seguro que lo es:

iface.messageBar().pushMessage("Header","MessageBody", QgsMessageBar.WARNING, 2)

el último argumento es un tiempo de espera en segundos, si no se proporciona, permanecerá hasta que el usuario lo cierre.

Incluso puede agregar su propio control a la barra de mensajes:

widget = iface.messageBar().createMessage("Test","Testing")
combo = QComboBox()
widget.layout().addWidget(combo)
iface.messageBar().pushWidget(widget, QgsMessageBar.WARNING)
combo.addItems("ASD")

ingrese la descripción de la imagen aquí

http://www.qgis.org/api/classQgsMessageBar.html#a0b305c7215d75243b4237c299f0f7723

Nathan W
fuente
@Nathan estoy usando QProgressBar en lugar de QComboBox. No puedo alinear la etiqueta de la barra de progreso en el lado derecho, actualmente se muestra en el medio de la barra de progreso con el símbolo%.
Venkat
@venkat ese es el estilo de la barra de progreso. Eche un vistazo a las hojas de estilo Qt sobre cómo cambiar eso, o puede haber una propiedad de etiqueta.
Nathan W
@Nathan ya planteé la pregunta con respecto a esto, pero hasta ahora no obtuve ninguna respuesta. Por favor, compruebe este enlace. Allí lo expliqué con la captura de pantalla y el código fuente. stackoverflow.com/questions/16434215/…
venkat
@venkat respondió allí por ti
Nathan W