PyQGIS插件开发经验

环境配置

方法一

官方文档中有描述:https://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/intro.html#running-custom-applications

方法二

如果使用pycharm开发的话,环境配置相对较简单,直接添加C:\Program Files\QGIS 3.16\bin\python-qgis.bat(ltr版本为python-qgis-ltr.bat),如下图:

编写插件

新建工程

我的工程:D:\pycharm\workspace\qgis_plugin_test

插件结构

官方文档:https://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/plugins/plugins.html#structuring-python-plugins

我的插件结构,如下:

 结构说明

__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/testing/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/testing/en/docs/pyqgis_developer_cookbook/plugins/ide_debugging.html#debugging-using-eclipse-and-pydev

我的方法:

  1. 设置QGIS_PLUGINPATH环境变量,变量值为插件工程的目录(设置完成,需要重启QGIS)
  2. 打开QGIS,进入插件管理,找到这是一个插件,首次运行需要把打上
  3. 这时插件菜单中和工具栏会多出一个图标:
  4. 点击按钮,弹出对话框:
  5. 如果需要调试,比如把代码中的self.title改为再说一遍,这是一个插件,然后再去第4个步骤取消并重新打勾(建议安装插件Plugin Reloader来重新加载插件)
  6. 再点击插件按钮,标题就会更新:

发布

将插件压缩为zip包就可以发布了,附上zip包下载地址: https://download.csdn.net/download/this_is_id/11168216

总结

  • 如果代码单元没有用到QGIS相关库,比如说只有界面调试,可以在pycharm中调试完成后,再用QIGS运行插件
  • QGIS插件开发资料较少,模块的方法可以在官方查看:https://qgis.org/pyqgis/master/
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

llc的足迹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值