今天的QGIS二次开发任务又有了新进展:
1、实现了矢量图层的创建
2、实现了属性字段创建与数值设置功能
3、实现了点线面矢量要素的创建,并实现了样式设置功能
今天遇到的最大难点是点线面要素样式设置功能,因为QGIS的C++版本只有接口文档,缺少接口调用示例,因此开发起来会有困难,效率也较低,需要自己琢磨,多次尝试才能实现,同时,网上资料也不是很多,有的资料都是老版本的接口调用实现。
今天的矢量要素样式设置功能就是一个典型。
我在网上找到了这篇技术贴:
https://blog.csdn.net/shineplusplus/article/details/78361940
文章写得挺好的,解释得很详细,而且还有具体代码示例。但我参照他的代码,实现相关功能时,发现他使用的类我的qgis二次开发包中都找不到,比如:
QgsSvgMarkerSymbolLayerV2* svgMarker = new QgsSvgMarkerSymbolLayerV2( "money/money_bank2.svg" );
QgsSvgMarkerSymbolLayerV2类就没有了,于是我就自己找类似的接口,因为QGis的接口文件很多,所以,找了一些时间仍然没找到,以为新版换了类结构了,所以准备放弃了。
然后我想到可以在接口文档中搜下,看弃用类的介绍文档是否有说明。
搜索后,发现还真找到了,我的接口版本有类似的接口文件,不同的是将V2去掉了,在程序中测试后发现可行且可用,最终实现了点线面矢量要素的样式修改功能!!











网友评论