QGIS开发

“工欲善其事必先利其器”,最近还是在做QGIS的相关项目,是通过插件的方式,开发出一个界面,并运行相关的程序。(如果知道怎么做的话,可以不用看了)
在实现的过程中,遇到了一些问题,并将其解决了,这里总结一下。按照实现的流程,可以分为这四步:1、QGIS怎么开发插件。2、插件应该放在什么位置,怎么安装插件。3、怎么设置插件的界面。4、插件的界面和代码怎么关联起来。
好了,现在就讲述一下这几个步骤中遇到的问题。
1、QGIS怎么开发插件。
QGIS的资料是少之又少,从网上搜了一天,找到的资料也就是三种:使用在线QGIS的plugin builder工具 http://www.dimitrisk.gr/qgis/creator/;使用桌面版QGIS中的plugin builder插件工具;人工的方式创建相应的文件,然后保存到相应的目录。可参考网上的博文 https://blog.csdn.net/deirjie/article/details/77043954,这篇博文讲的比较详细。
注意,现在开始讲坑!
→→使用第一种方法生成的插件,会缺少文件,“metadata.txt”,这个是元数据文件,在QGIS1.8以后的插件必须要有,里面记录了软件的一些说明信息。如果没有的话,可以从别的插件里面拷贝一个,然后改改内容就行了。推荐使用这一种方法。
→→使用第二种方法生成的插件,会缺少文件,"resources.py”,然后插件就不能用了(不知道有没有遇到这种情况的,或者成功的,有的话,可以给我留言,咱们交流以下原因)。
→→使用第三种方法生成的插件,主要是太繁琐,文件多,很容易缺少东西,并且还会乱,不推荐使用。
2、插件应该放在什么位置,怎么安装插件。
假如你现在弄好一个插件了,这个插件应该放在哪个地方呢?从网上找了半天,才知道有两个地方是对的。第一:C:\Users\Administrator.qgis2\python\plugins;第二:自己建一个目录,将这个目录添加到环境变量QGIS_PLUGINPATH中,没有这个变量的话,自己建一个。
3、怎么设置插件的界面。
很好,到这一步,说明可以更进一步了。使用上面第三种方法产生的插件,是没有界面文件的,也就是“*.ui”,这个文件就是界面的文件了,推荐使用QT Creator软件,直接打开,然后修改成你想要的样子,加按钮、对话框啥的。
注意,现在开始讲坑!
→→你修改界面之后,把界面保存一下,那QGIS里面的插件就更新了?不可能,你需要做一个重要的步骤,那就是把这个插件更改后的部分进行编译,将 *.py文件变为 *.pyc文件。首先通过OSGeo4W.bat定位到文件所在的文件夹,然后使用如下命令编译界面文件(这命令里面文件的名字是根据自己的需要自己改的)
pyuic4 -o Ui_Zoomer.py Ui_Zoomer.ui
使用如下命令编译普通的python文件
pyrcc4 -o Zoomer.py Zoomer.pyc
如果遇到无法编译的情况,可参考如下博客内容,使用python编辑器编译。https://www.cnblogs.com/zhangqunshi/p/6657208.html
4、插件的界面和代码怎么关联起来。
这个就很惆怅了,界面设置好了,怎么其和代码关联起来呢。在以往的编程经历中,在VS中可以很容易的实现界面和代码的关联,但是这个没找到好方法,目前使用的是笨方法,那就是在QT中设置好界面,然后代码自己另外写,可以参考别的插件是怎么写的,然后自己照猫画虎做一个。网上也有很多教程,例如qt+vs+qgis 等,qt+pycharm+qgis等,感觉配置比较麻烦,有兴趣的可以参考如下博客。https://blog.csdn.net/lyzwjaa/article/details/79429901
注意,现在开始讲坑!
→→写好代码后一定要用步骤3中讲的方法,讲代码文件编译一下,然后再更新QGIS中的插件,不然没有用。
小技巧:
在更新插件的时候,可以使用QGIS中的plugin reloader插件工具更新,或者重启QGIS也行,不过太麻烦。
总结
说了一大堆,应该是讲完了,按照这个步骤,你就可以构建你的一个QGIS的插件了,这里感谢在网上提供各种解决办法的博客。
后面我会再讲怎么添加多个界面,界面与界面之间怎么连接,等其他内容。
未完待续。。。。。。

参考:
https://blog.csdn.net/deirjie/article/details/77043954
https://www.cnblogs.com/zhangqunshi/p/6657208.html
https://blog.csdn.net/lyzwjaa/article/details/79429901

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值