Как обратиться к новому «завершенному заданию» QgsMessageBar в Python?

12

Я действительно поражен, какие огромные шаги предприняла разработка QGIS за последние месяцы. Новый набор иконок, улучшенный Композитор печати и многие другие изменения, которые можно увидеть в QGIS 2.0, действительно потрясающие!

Среди многих других классных улучшений есть также изящная синяя панель задач, которая мне очень нравится. Текст говорит: Сохранить завершено: Экспорт в векторный файл завершен

Можно ли обратиться к этой панели в python для скриптов и плагинов (например, чтобы показать небольшое сообщение после завершения вычислений)? Я задаю этот вопрос здесь, потому что я считаю, что многие разработчики QGIS также посещают этот сайт вопросов и ответов.

PS: панель видна только в QGIS dev и только для некоторых операций.

кроншнеп
источник

Ответы:

14

Это точно так:

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

последний аргумент - это тайм-аут в секундах. Если он не указан, он будет действовать до тех пор, пока пользователь не закроет его.

Вы даже можете добавить свой собственный элемент управления на панель сообщений:

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

введите описание изображения здесь

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

Натан У
источник
@ Натан, я использую QProgressBar вместо QComboBox. Я не могу выровнять метку индикатора выполнения с правой стороны, в настоящее время она отображается в середине индикатора прогресса с символом%.
Венкат
@venkat это стиль индикатора выполнения. Посмотрите таблицы стилей Qt, чтобы узнать, как это изменить, иначе может быть свойство label.
Натан W
@ Натан, я уже поднимал вопрос об этом, но пока не получил никакого ответа. пожалуйста, проверьте эту ссылку. Там я объяснил скриншот и исходный код. stackoverflow.com/questions/16434215/…
venkat
@venkat ответил там для вас
Натан W