QGIS插件开发(1)

时间:2024-03-22 16:41:27

QGIS插件开发笔记(1)

前言

博主是刚刚毕业的大学生,因工作需要开始接触QGIS插件开发,将过程和遇到的问题整理成博客作为记录,也和大家分享一下。这里使用的是Python进行开发,不使用C++是因为可以查到的资料实在太少,编译又一直出问题

环境搭建

开始正式工作之前,先把环境都装好,这里我使用Osgeo4w集成环境安装, 不推荐使用QGIS独立安装包进行安装,可能会少东西导致后面开发插件少这个少那个的,当然也可能是我没有安装配置好…

  1. 下载链接:Osgeo4w
    选择 OSGeo4W Network Installer (64 bit) 下载 osgeo4w-setup-x86_64.exe
  2. 运行 osgeo4w-setup-x86_64.exe 启动安装程序,选择 Express Desktop Install,默认安装 QGISGDAL,以及GRASS GIS,然后下一步安装(下载速度比较慢,耐心等待)QGIS插件开发(1)
  3. 完成上一步之后需要安装其他开发插件,重新打开 osgeo4w-setup-x86_64.exe,选择 Advanced Install,选择以下包:qt5-develqca-qt5-develqgis-devel(速度慢,时间很长,而且可能会断开崩溃等,不过有断点续传,崩溃了再打开勾选起来继续下载;一路点下一步,默认安装在C://
    当你看到勾选的下载项变成这样有当前的版本号就算成功了QGIS插件开发(1)
  4. 以上步骤完成之后可以检查一下目录QGIS插件开发(1)
    然后在环境变量里面加入:
    QGIS插件开发(1)
    C:\OSGeo4W64\apps\qgis\python\qgis\PyQt;
    C:\OSGeo4W64\apps\Python37;
    C:\OSGeo4W64\apps\Python37\Scripts;
    C:\OSGeo4W64\apps\qgis\python;
    C:\OSGeo4W64\apps\qgis\python\plugins;
    C:\OSGeo4W64\apps\Python37\lib\site-packages;
    基本上就是这些(有些可能是多余的,多了没事少了就跑不起来)
  5. 之后可以打开桌面上的QGIS文件夹,打开QGIS Desktop
    打开后有可能是英文状态,点击菜单栏的Settings->Options->GeneralUserInterface Translation设置成简中,重启软件就可以变成中文了。

基本插件

点击菜单栏 插件->管理并安装插件(等待一会连接插件服务器) 然后在全部选项里搜索框输入build点击Plugin Builder 3然后安装。
安装后在已安装插件打开它,在插件菜单里就可以看到了
QGIS插件开发(1)
这是一个插件模板创建向导,根据英文提示输入信息
QGIS插件开发(1)
QGIS插件开发(1)
QGIS插件开发(1)
QGIS插件开发(1)
目录最好是放这QGIS\QGIS3\profiles\default\python\plugins
一般来说这样就创建好了,但是如果你弹出了这个窗口QGIS插件开发(1)
就说明你的Python目录下没有找到pyrcc5(通常也会少pyuic5,因为集成环境里的Python是不完整的,但是通过PIP去手动下载,你可能会发现会报错)这里你可以升级一下PIP到新版本:python -m pip install --upgrade pip ,然后pip install PyQt5去重新下一下pyqt,检查OSGeo4W64\apps\Python37\Scripts目录下有没有pyrcc5。如果还是没有,有个比较麻烦的方法,重新下一个Python然后执行PIP安装PyQt5,这样在默认目录C:\Users\Administrator\AppData\Local\Programs\Python\Python38\Scripts下就可以找到了,然后自己手动拷贝到刚才创建插件的那个目录里面去QGIS插件开发(1)
然后手动去编译一下文件,在这个目录空白处按住shift然后右键打开命令行,执行:
pyrcc5 -o resources.py resources.qrc
pyuic5 -o a_dialog_base.py a_dialog_base.ui

这样去编译文件,重新打开QGIS->插件->管理 找到你自己创建的插件,打钩完了就可以打开了
QGIS插件开发(1)
QGIS插件开发(1)
到这一步就算开好头了,之后推荐看一下插件的基本介绍,了解一下PyQGIS插件到底是怎么一回事:PyQGIS插件中文文档然后就可以开始制作你自己想要的插件了。
QGIS官方API文档(英文):https://qgis.org/pyqgis/3.4/index.html
QGIS手册(英文):https://docs.qgis.org/3.10/en/docs/pyqgis_developer_cookbook/composer.html