qgis插件开发:如何添加messageBar提示信息?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
本文讨论在qgis
插件体系中,如何添加messageBar
提示信息,可以用于信息提示或通知。值得一提的是:这些提示之间是并不会相互覆盖的,按照一定的队列关系进行排队提醒。
本文测试环境:qgis@3.16.14-hannover
,win10
。本篇文章的插件基于qgis plugin builder
创建,具体的步骤可以参考下面这篇文章:
综述
各大ui
组件里面都有这种类似的提示信息组件(不过可不叫messageBar
这个名字),一般组成就是:
- 提示的类型(
success
或者warning
或者error
) - 提示的时长(几秒或者多少毫秒)
- 提示的文本内容
那么在qgis
的插件体系里面,也是有类似的功能的,这个功能的名字就是:messageBar
。举例来说,提示信息的显示时长都设置为5秒,代码如下:
from qgis.core import Qgis
iface.messageBar().pushMessage(msg, "附加文字信息",level=Qgis.Success, duration=5)
是不是有点意外,函数原型是个多态。
文字信息参数text
- 文字信息参数可以分为两部分传入,那么就会进入
title
+text
模式。 - 文字信息参数就在一个参数内传入的话,那么就会进入单一
text
模式。
信息级别参数level
这条messagebar
的表现形式是由level
控制的,通过查看源码可以看到,Qgis.
和Qgis.MessageLevel.
下面一共定义了下面几种类型:Success
,Info
,Warning
,Critical
,当然还有个默认的None
。
- 这些类型里面没有
error
,有个Critical
。- 在源代码上看的话,这些
level
在Qgis.
和Qgis.MessageLevel.
上面都有定义,所以两种写法都应该是正确的。
持续时长duration
参数单位是秒,代码显示默认为-1
,测试显示并不是,而是3
,-1
表示永久显示。
清空消息队列
重新初始化界面的时候,就可以这么执行:
self.iface.messageBar().clearWidgets()
相关链接
- https://newsn.net/say/qgis-plugin-btn-status.html
- https://newsn.net/say/qgis-plugin-btn-position.html
- https://newsn.net/say/qgis-plugin.html
- https://www.osgeo.cn/qgisdoc/docs/pyqgis_developer_cookbook/communicating.html#id6
总结
这里就是简单的对qgis
插件系统内的提示信息方式进行个小的总结,非常简单。更多的qgis
插件开发内容,请关注苏南大叔的系列文章:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。