QGIS 3.14插件开发
前言:最近实习要求做一个QGIS插件,网上关于QGIS 3.14插件开发环境搭建的文档不多,而且也不算太全面。正好实习的时候写了一个文档,在这里给大家分享一下。
因为是Word转的Markdown,可能文章格式略有问题,不过没关系啦(。)
一、PyQGIS安装
在windows系统下,QGIS安装包会自动安装PyQGIS模块,本文以windows系统进行讲解。
实际上,如果使用新版本的QGIS forLinux或Mac也会安装PyQGIS,可以参考QGIS官方文档。
二、Python环境变量配置(1)配置Path
配置Python环境变量主要是为了从命令行运行python和调用pyqgis库。
先设置系统变量path,最好是放到最前面,防止被其他地方安装的python覆盖,如:
操作过程如系列图:此电脑(右键)—―属性→系统——高级系统设置→系统属性——环境变量→环境变量|系统变量
在系统变量中找到Path,点击编辑
添加环境变量:
D:\QGIS 3.14\bin
D:\QGIS 3.14\apps\qgis\bin
D:\QGIS 3.14\apps\Qt5\bin
(其中D:\QGIS 3.14 是你QGIS的安装位置)
(2)配置PYTHONPATH
PYTHONPATH主要是为了让Python能够找到PyQGIS的各种依赖模块,保证正常使用。
在系统变量中点击新建,新增名为PYTHONPATH系统变量。
变量值设置为:
D:\QGIS 3.14\apps\Python37;
D:\QGIS 3.14\apps\qgis\bin;
D:\QGIS3.14\apps\qgis\python;
D:\QGIS 3.14\apps\Python37\lib;
D:\QGIS 3.14\apps\Python37\Lib\site-packages;
D:\QGIS 3.14\apps\Python37\DLLs;
D:\QGIS 3.14\apps\Python37\Scripts;
(其中D:\QGIS 3.14是你的qgis安装路径,python37是qgis自带python的版本)
、
(3)检查环境变量配置是否成功
Win+r 打开运行窗口,输入cmd启动命令提示行
输入python3或者python,运行python。该python版本应为qgis自带python版本。
然后输入:
import qgis.core
import qgis.user
import qgis.gui
import console
没有提示错误即为配置成功
三、使用QGIS构建插件项目
插件安装和构建插件项目的流程如下:
(1) 插件安装
打开QGIS,插件——
因为我们后面使用PyCharm开发,QGIS中Remote Debug这个工具可有可无。
(2)插件路径设置
在QGIS的设置-选项-系统中,找到环境一栏,勾选“使用自定义变量”,添加插件工作区路径。之后的插件需要生成到这个路径下,QGIS才能自动识别到。
例如我设置为:E:\QGIS_plugin_develop
(3)创建插件
https://www.osgeo.cn/qgisdoc/docs/pyqgis_developer_cookbook/plugins/index.html
创建插件工程
重新启动QGIS
这里的Class name是插件的类名,Plugin name是你的插件名,Moulename是python模块的名称。如果只是开发练习,后面那些乱七八糟的随便填就好。
如果不想发布插件,只做练习使用,这里建议大家勾选Flag the plugin asexperimental选项
这里选择之前设置的插件工作区的路径,自动生成的插件模板就会放置于该目录下。
:
为了避免不必要的麻烦。插件生成完毕后,先不要加载插件,否则会提示缺少:resources.py 文件
如果弹出以下对话框,也暂时先不管,咱们之后再处理。
这样插件项目模板创建好了,可以在刚才我们创建的目录下查看
四、搭建PyCharm开发环境
PyCharm有两种版本,一种是免费的Community版,一种是Professional版。
其中Pycharm Community版本不支持RemoteDebug。如果想要使用Pycharm的远程调试功能调用Pydev包(Pydevd-pycharm)进行调试,就需要安装Professional版本。
JetBrains全家桶提供了学生授权供学生免费使用。只要使用大学的邮箱在其官网注册一个账号,然后申请学生授权就可以免费使用JetBrains的所有产品。
参考:https://jingyan.baidu.com/article/acf728fd862d44f8e510a385.html
当然,如果觉得自己不需要用到调试功能,下载Community版本也可。下面以Community版本讲解PyCharm的环境搭建。Professional版本的搭建过程也是一样的。
安装Pycharm Community流程,如下:
(1) 下载
官方网站 https://www.jetbrains.com/pycharm/
选择保存后,等待下载。
找到下载文件
(2)安装
双击安装文件。
选择安装目录,Pycharm需要的内存较多,建议将其安装在D盘或者E盘,不建议放在系统盘C盘:
create desktopshortcut(创建桌面快捷方式):系统32位就选32-bit,系统64位就选64-bit。现在大多数都是64位了,不清楚系统类型:我的电脑=》右键=》属性
update path variable(restart needed)更新路径变量(需要重新启动):add launchersdir to the path(将启动器目录添加到path中)。这里我建议大家添加到环境变量PATH。
update context menu(更新上下文菜单):add open folder asproject(添加打开文件夹作为项目)。可以不选。
create associations 创建关联:关联.py文件,双击都是以pycharm打开。
(3)PyCharm python解释器设置
打开安装好的PyCharm:
设置UI颜色
直接下一步即可
这里选择Open打开我们之前生成插件项目。然后File-Settings打开设置
打开设置后,找到python interpreter,点击右上角的设置Add
选择System Interpreter(这里不推荐大家自己构建虚拟环境),添加Python解释器:
D:\QGIS 3.14\apps\Python37\python.exe
(其中D:\QGIS 3.14是你的安装路径)
可以看到,PyCharm已经帮我们把相关的包引入进来了
(4)安装扩展工具
在Settings中选择Tools打开External Tools页面,点击+号添加扩展工具。
添加QtDesigner,用于编辑UI
Name:QtDesigner
Program:D:\QGIS 3.14\apps\Qt5\bin\designer.exe
Working directory:你的插件项目的目录
添加PyUIC(UI转换工具),用于将ui转换为py模块
Name:Pyuic
Program:D:\QGIS 3.14\apps\Python37\Scripts\pyuic5.bat
Arguments: $FileName$ -o $FileNameWithoutExtension$.py
Working directory:你的插件项目的目录
(其中Arguments相当于一段控制台命令,是调用pyuic5.bat的参数)
添加PyRCC(资源转换工具),用于将qrc转换为py模块
Name:Pyrcc
Program:D:\QGIS 3.14\apps\Python37\Scripts\pyrcc5.bat
Arguments: $FileName$ -o $FileNameWithoutExtension$.py
Working directory:你的插件项目的目录
(这里的Arguments也是同样的道理)
(5)创建resources.py和图形界面py文件
创建图形界面py文件:
找到项目目录下,扩展名为ui的文件(文件名根据你设置的插件模块名有所不同),右键ExternalTools-Pyuic运行扩展工具
没有报错,并且在项目目录下出现同名的py文件则为转换成功。
同理,对resources.rcc的文件,右键选择右键External Tools-Pyrcc
(6)运行插件
万事俱备,打开QGIS,插件栏选择管理并安装插件。
在已安装的插件中找到并勾选我们的插件,然后运行我们的插件即可。