如何制作qgis插件?qgis经典版如何下载?
发布于 作者:苏南大叔 来源:程序如此灵动~在地理信息系统领域,常见的gis
软件有2个,一款是arcgis
,一款是qgis
,两者都支持自定义插件。那么,在本文中,苏南大叔将介绍其中的Qgis
插件制作的基本流程。
本文基于qgis@3.16
这款长期支持版本,其中插件的界面部分是基于QT
的,代码逻辑部分是基于python
的。实验用操作系统是win10
,qtdesigner@5.15.2
,python@39
。
QGis
软件下载
截至到发稿,qgis
有两个版本,一个是3.22
,一个是3.16
。其中,3.16
是长期支持版本,3.22
是最新版本。所以,苏南大叔选用的qgis
版本号是3.16.13
。
因为恰巧赶上版本更新,所以本文中,截图和行文会出现两个qgis
版本号,3.16.13
和3.16.14
。两者基本没有啥差别。
在这里,值得一提的是:下载安装包的时候,最好选择standalone
完整版,因为整个软件安装包实际上有1个G左右。如果选择在线安装的话,基于网络环境的现实性,很可能什么也安装不来。
qgis@3.16
完整版下载地址:
- https://qgis.org/en/site/forusers/download.html
- https://qgis.org/downloads/QGIS-OSGeo4W-3.16.14-1.msi
插件管理器
本文中是主要描述,如何编写和调试qgis
插件的。所以和qgis
的插件管理器大量相关。这里先认识一下插件管理器。
网络不好的话,就可能看到下面这个界面,请等待,正在拉取插件列表。
打对勾的就是本地已经安装好的插件。
重点展示本文涉及的三个插件:plugin builder
,plugin reloader
,以及本文中的测试插件SuTest
。
获得插件目录
安装完的现有插件,以及本文中要调试的自定义插件,都要放到插件目录里面。这个目录的地址是:<profile>/python/plugins/
。
其中<profile>
在官方文档里面,有着定义。不过,似乎和实际的路径还是有很大差别的。这里,苏南大叔是利用qgis
的一个菜单来获得这个目录的,保证准确无误。
苏南大叔在win10
系统下,获得的目录如下:
C:\Users\sunan\AppData\Roaming\QGIS\QGIS3\profiles\default\
获得这个路径后,再叠加/python/plugins/
字样,就是本文的目标目录了。
叠加后的路径,如下所示:
C:\Users\sunan\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins\
安装插件plugin builder
是的,本文使用插件来生成插件,安装好plugin builder
之后,就可以一路无脑next
来获得一个插件工程的模版了。
其中,值得一提的是:第一步中的module name
,可能会导致python
错误(因为它会生成python
的类名称)。
可以设置插件最终注册的菜单位置,还可以设置插件界面的模版。
另外,有个插件实验性的标记。个人认为:对于我们的测试版来说,还是有必要设置为“实验性”的。
插件工程的生成目录,请填写上个步骤获得的真实插件目录路径,便于调试。
注意:如果提示"your output directory does not exists"的话,请使用右边的选择按钮找到上述插件的默认位置。估计可能是个最新的bug
。
利用pyrcc5
生成资源文件
没有这个步骤的话,qgis
的插件管理器是不能识别出自定义插件的。所以需要执行一下命令,生成一个资源文件。
或者重启qgis
,然后在插件管理器里面启用一下,可能会自动生成这个文件哦。
命令如下:
pyrcc5 -o resources.py resources.qrc
这里的pyrcc5
字样,在未来的版本发展中,可能会变成pyrcc6
或者pyrcc7
等。
另外,pyrcc
命令,需要在程序根目录下面的OSGeo4W.bat
文件中,才能被识别到。所以,打开这个.bat
文件后,可能还需要先cd
到对应自定义插件的实际目录,再执行命令。
温馨提示:从c
盘跳到d
盘的话,是cd
不过去的。需要直接敲对应的盘符,再回车。
执行插件
重启qgis
插件,就可以在插件管理器里面,识别出这个自定义插件了。然后记得启用一下。
如果找不到的话,可以检查一下设置项。
然后,这个插件将会被注册到对应的菜单下面,(这个是在plugin builder
创建插件的时候,就定义过的)。同时,工具栏里面,也会出现对应的图标。
编辑插件界面ui
一般来说,插件都是有界面的。这个qgis
插件也是这样的。在上一步生成的插件工程代码里面,有个同名的.ui
文件。这个就是使用qtdesigner
来进行界面编辑的。这个qtdesigner
在安装qgis
的时候,是自带的软件。
这个qgis
软件,里面封装了python
,还封装了qt
。
编辑好界面保存之后,一般来说,重启qgis
就可以生效了。
plugin reloader
直接刷新插件
对于调试中的自定义插件来说,这个不断重启qgis
的过程,是不能接受的。所以,这里需要第二个插件,叫做:plugin reloader
。
在qgis
的插件管理器里面,安装完plugin reloader
之后,建议首先配置识别到当前调试的插件。否则的话,就会每次询问要刷新哪个插件?
配置后之后,plugin reloader
的菜单会发生变化。以后直接ctrl+f5
就是刷新自定义插件了。这对于插件调试来说,无疑是个巨大的福音。
python
代码逻辑
qgis
的官方文档里面,有提到:可以使用c++
或者python
来编写qgis
插件。但是,其中使用c++
编写的都是系统插件。大部分情况下,大家的插件都是使用python
来编写的。
对于插件工程里面的代码,可能需要编辑的.py
文件如下:
<name>.py
<name>_dialog.py
当然,在本文中,并没有明确的插件需求,只是个demo
。所以,这里就不做过多阐述了。
相关文章
总结
本文中,苏南大叔总结了开发qgis
插件的简单步骤和方法。如果您想知道更多qgis
相关的文章,请点击下面的链接:
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。