É possível mostrar nossa mensagem personalizada na barra de status do QGIS usando python?

14

Existe alguma maneira de mostrar nossa mensagem personalizada na barra de status do Qgis usando python? Assim como nos arcgisIApplication.statusbar.message(0) = "Please wait..."

assim existe alguma opção para mostrar a barra de progresso no Qgis como IApplication.progressbar.show()

Venkat
fonte

Respostas:

34

Barra de status

Existe iface.mainWindow (). StatusBar () que retorna um QStatusBar

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

insira a descrição da imagem aqui

MessageBar

A partir do QGIS 2.0, também existe o QgsMessageBar, capaz de exibir mensagens discretas

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

insira a descrição da imagem aqui

Avançado

A barra de mensagens também pode mostrar qualquer QWidget (como um QProgressBar ) com um botão Fechar e um tempo limite (5 segundos no exemplo).

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 )

insira a descrição da imagem aqui

Mais informações sobre QgsMessageBar podem ser encontradas nesta resposta por NathanW Como abordar o novo QgsMessageBar "Concluído por Tarefas" em Python? Obrigado por apontar Curlew

Legado

No console python para QGIS <1.9, seria:

qgis.utils.iface.mainWindow().statusBar().showMessage( u"Hello World" )
Matthias Kuhn
fonte
Muito obrigado Matthias .. existe alguma opção para progressbar?
Venkat
No QgsMessageBar, você pode exibir qualquer tipo de widget. Eu não saberia que isso é possível na barra de status.
Matthias Kuhn
Eu sou muito novo no qgis e python .. você poderia me dar um exemplo para o QgsMessageBar? e qual é o significado de usar o prefixo 'u' em "Olá, mundo"
venkat
O prefixo u é para cadeias unicode. Também funcionará sem isso. Para o QgsMessageBar, você precisa obter a versão atual de desenvolvimento do QGIS ou aguardar o lançamento do 2.0.
Matthias Kuhn
3
Consulte também a resposta de Nathans sobre como enviar um widget para a nova barra de mensagens gis.stackexchange.com/questions/57067/…
Curlew