Como lidar com o novo QgsMessageBar "Concluído por Tarefa" em Python?


12

Estou realmente impressionado com os enormes passos que o desenvolvimento do QGIS tomou nos últimos meses. O novo conjunto de ícones, o compositor de impressão aprimorado e muitas outras alterações que podem ser vistas no QGIS 2.0 são realmente incríveis!

Entre muitas outras melhorias interessantes, há também esta elegante barra de tarefas azul, que eu acho muito atraente. O texto diz: Salvar concluído: a exportação para o arquivo vetorial foi concluída

É possível endereçar essa barra em python para scripts e plugins (por exemplo, para mostrar uma pequena mensagem após o término dos cálculos)? Estou fazendo esta pergunta aqui, porque acredito que muitos desenvolvedores de QGIS também visitam este site de perguntas e respostas.

PS: A barra é visível apenas no QGIS dev e apenas para algumas operações.

Respostas:


14

Com certeza é:

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

o último argumento é um tempo limite em segundos, se não for fornecido, ele permanecerá até que o usuário o feche.

Você pode até adicionar seu próprio controle à barra de mensagens:

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

insira a descrição da imagem aqui

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


@ Nathan, estou usando QProgressBar em vez de QComboBox. Não consigo alinhar o rótulo da barra de progresso no lado direito, atualmente está sendo exibido no meio da barra de progresso com o símbolo%.
venkat

@venkat que é o estilo da barra de progresso. Dê uma olhada nas folhas de estilo do Qt sobre como mudar isso ou pode haver uma propriedade de rótulo.
Nathan W

@ Nathan eu já levantei a pergunta sobre isso, mas eu não recebi nenhuma resposta até agora. por favor verifique este link.aqui expliquei com captura de tela e código fonte. stackoverflow.com/questions/16434215/…
venkat

@venkat respondeu por lá para você
Nathan W
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.