我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

本篇文章描述qgis插件所生成的图标的几种状态。当然,读完本文后,您可能和苏南大叔得出类似的结论。这几种状态似乎没有啥特别大的意义。

苏南大叔:qgis插件开发:如何理解图标按钮的几种状态代码? - qgis-btn-status
qgis插件开发:如何理解图标按钮的几种状态代码?(图2-1)

本文测试环境:win10qgis@3.16.14-hannover

添加一个按钮

直接上代码,具体的内容,可以参考下面的文章:

icon = QIcon(os.path.dirname(__file__) + "/images/icon.svg")
self.theIcon = QAction(icon, "按钮提示文字", self.iface.mainWindow())
self.theIcon.setObjectName('testIcon')
self.theIcon.setStatusTip("底部状态栏文字提示信息")
self.theIcon.triggered.connect(self.iconAction)

苏南大叔把这个测试按钮添加到插件的公共toolbar里面。

self.iface.addAction(self.theIcon)

苏南大叔:qgis插件开发:如何理解图标按钮的几种状态代码? - qgis-btn-status-2
qgis插件开发:如何理解图标按钮的几种状态代码?(图2-2)

按钮状态代码checkable

checkabletrue的话,按钮可以保持被按下的状态,直到下一次被按下。

self.theIcon.setCheckable(True)
self.theIcon.setCheckable(False)

判断是否被按下:

self.theIcon.isChecked()

这里需要特殊说明一下,对于可以被按下的按钮,isChecked()是判断的下一个状态。比如:

  • 当前是普通状态,在按下的事件里面,做判断的话,isChecked()True
  • 当前是按下状态,在按下的事件里面,做判断的话,isChecked()False

判断是否可以被按下:

self.theIcon.isCheckable()

按钮状态代码setChecked

setChecked仅仅是用于设置相关值,就是配置按钮的默认的是否被选中的状态。

本代码生效的前提是:已经是setCheckable(True)了,然后再执行setChecked()才有意义。
self.theIcon.setChecked(True)
self.theIcon.setChecked(False)

所以这个最有意义的代码组合是:

self.theIcon.setCheckable(True)
self.theIcon.setChecked(True)

按钮状态代码enabled

Enabled就是按钮是否可用,比较好理解,不做过多描述

self.theIcon.setEnabled(True)
self.theIcon.setEnabled(False)

状态判断:

self.theIcon.isEnabled()

相关链接

总结

本文非常简单,就是对按钮的几种状态代码进行描述。更多qgis插件相关文章,点击下面的链接查看即可。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   qgis