如何在Python中解决新的“已完成任务”的QgsMessageBar?


12

我真的很惊讶QGIS在过去几个月中所采取的巨大步骤。新的图标集,改进的打印作曲家以及在QGIS 2.0中可以看到的更多变化真是太棒了!

除了其他许多不错的改进之外,还有一个漂亮的蓝色任务栏,我觉得它很有吸引力。 文字说:保存完成:导出到矢量文件完成

是否有可能在python中解决此条脚本和插件的问题(例如在完成计算后显示一条小消息)?我在这里问这个问题,因为我相信许多QGIS开发人员也会访问此问答站点。

PS:该栏仅在QGIS开发人员中可见,并且仅在某些操作中可见。

Answers:


14

确实是:

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

最后一个arg是超时(以秒为单位),如果未提供,则它将一直保留到用户关闭它为止。

您甚至可以将自己的控件添加到消息栏:

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


@Nathan我正在使用QProgressBar而不是QComboBox。我无法在右侧对齐进度栏标签,当前其在进度条中间以%符号显示。
2013年

@venkat是进度条的样式。查看有关如何更改它的Qt样式表,否则可能会有label属性。
内森·W

@Nathan我已经提出了与此有关的问题,但到目前为止我还没有得到任何答案。请检查此链接。我在其中解释了屏幕截图和源代码。 stackoverflow.com/questions/16434215/…–
venkat

@venkat在那儿为您回答
Nathan W
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.