环境配置
方法一
官方文档中有描述:https://docs.qgis.org/3.4/en/docs/pyqgis_developer_cookbook/intro.html#running-custom-applications
方法二
如果使用pycharm开发的话,环境配置相对较简单,直接添加C:\Program Files\QGIS 3.4\bin\python-qgis.bat(ltr版本为python-qgis-ltr.bat),如下图:
编写插件
新建工程
我的工程:D:\pycharm\workspace\qgis_plugin_test
插件结构
官方文档:https://docs.qgis.org/3.4/en/docs/pyqgis_developer_cookbook/plugins/plugins.html#plugin-files
我的插件结构,如下:
结构说明
__init__.py
插件入口,类名称必须为classFactory
# -*- coding: utf-8 -*-
def classFactory(iface):
from .main_plugin import PluginTest
return PluginTest(iface)
main_plugin.py
必须包括两个函数
- initGui:用于加载插件
- unload:用于卸载插件
我的main_plugin.py如下:
# -*- coding: utf-8 -*-
# @Time : 2018/9/30 9:32
# @Author : llc
# @File : main_plugin.py
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QAction, QDialog
import os
class PluginTest:
def __init__(self, iface):
self.iface = iface
self.title = '这是一个插件'
def initGui(self):
'''插件加载'''
self.action = QAction(QIcon(os.path.dirname(__file__)+"/icon.png"), self.title, self.iface.mainWindow())
self.action.setWhatsThis(self.title)
self.action.triggered.connect(self.run)
# 添加到菜单栏
self.iface.addPluginToMenu("插件测试", self.action)
# 添加到工具栏
self.iface.addToolBarIcon(self.action)
def unload(self):
'''插件卸载'''
# 从菜单栏删除
self.iface.removePluginMenu("插件测试", self.action)
# 从工具栏删除
self.iface.removeToolBarIcon(self.action)
def run(self):
dialog = QDialog(self.iface.mainWindow())
dialog.setWindowTitle(self.title)
dialog.exec_()
icon
插件图标
metadata.txt
插件元数据,官方文档:https://docs.qgis.org/3.4/en/docs/pyqgis_developer_cookbook/plugins/plugins.html#plugin-metadata
我的metadata.txt:
[general]
name=这是一个插件
description=再说一遍,这是一个插件
version=0.0.0
qgisMinimumVersion=3.0
author=llc
icon=icon.png
changelog=
- 没有日志
插件调试
官方文档中也有描述(超麻烦,没有试验成功):https://docs.qgis.org/3.4/en/docs/pyqgis_developer_cookbook/plugins/ide_debugging.html
我的方法:
- 将工程目录链接到QGIS的插件安装目录,打开cmd,执行:cd C:\Users\你的用户名\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins
- mklink /J qgis_plugin_test D:\pycharm\workspace\qgis_plugin_test
- 然后插件目录会出现一个类似快捷方式的东西:
- 打开QGIS,进入插件管理,找到这是一个插件,首次运行需要把√打上
- 这是插件菜单中和工具栏会多出一个图标:
- 点击按钮,弹出对话框:
- 如果需要调试,比如把代码中的self.title改为再说一遍,这是一个插件,然后再去第4个步骤取消并重新打勾
- 再点击插件按钮,标题就会更新:
发布
将插件压缩为zip包就可以发布了,附上zip包下载地址: https://download.csdn.net/download/this_is_id/11168216
总结
- 如果代码单元没有用到QGIS相关库,比如说只有界面调试,可以在pycharm中调试完成后,再用QIGS运行插件
- QGIS插件开发资料较少,模块的方法可以在官方查看:https://qgis.org/pyqgis/3.4/