QGIS插件是扩展QGIS功能的重要方式,通过本文的学习,你将了解QGIS插件的基本结构和创建方法。

插件的最简配置文件及其作用
一个QGIS插件必须包含的三个文件:metadata.txt、__init__.py、plugin_name.py
metadata.txt
插件的元数据文件,用于描述插件的基本信息,如插件名称、版本、作者、插件描述等。在安装插件时,QGIS会读取metadata.txt文件中的信息,用于显示插件的基本信息。
txt
[general]
name=pluginName
qgisMinimumVersion=3.0
description=plugin description
version=1.1
各字段含义:
- name : 插件名称,显示在QGIS插件管理器中的唯一标识
- qgisMinimumVersion : 最低支持的QGIS版本,确保插件兼容性
- description : 插件功能描述,帮助用户了解插件用途
- version : 插件版本号,遵循语义化版本规范

init.py
插件的初始化文件,用于定义插件的入口函数。在插件加载时,QGIS会自动调用__init__.py文件中的函数,用于初始化插件。
python
def classFactory(iface):
from .main import SimplePlugin # main是后面pyton入口的文件名,SimplePlugin是类名
return SimplePlugin(iface)
main.py
插件的主文件,用于定义插件的主要功能。在插件加载时,QGIS会自动调用main.py文件中的函数,用于初始化插件。
initGui
: 指定QGIS插件在QGIS软件中展示图标和位置,以及点击后执行run
方法,后面扩展也是接下去写

unload
: 是卸载时执行的动作
python
from qgis.PyQt.QtWidgets import QDialog, QVBoxLayout, QLabel, QPushButton, QAction
from qgis.core import QgsApplication, QgsVectorLayer, QgsFeature, QgsGeometry, QgsPointXY, QgsProject
from qgis.PyQt.QtCore import Qt
from qgis.PyQt.QtGui import QIcon
class SimplePlugin:
def __init__(self, iface):
self.iface = iface
self.dialog = None
def initGui(self):
self.toolbar = self.iface.addToolBar("最简插件")
self.action = QAction(QIcon(), "最简插件", self.iface.mainWindow())
self.action.triggered.connect(self.run)
self.toolbar.addAction(self.action)
self.iface.addPluginToMenu("最简插件", self.action)
def unload(self):
# 移除工具栏图标和菜单项
self.iface.removeToolBarIcon(self.action)
self.iface.removePluginMenu("最简插件", self.action)
del self.action
# 关闭对话框
if self.dialog:
self.dialog.close()
def run(self):
if not self.dialog:
self.dialog = PointCreatorDialog(self.iface, self.iface.mainWindow())
self.dialog.show()
self.dialog.raise_()
self.dialog.activateWindow()
class PointCreatorDialog(QDialog):
def __init__(self, iface, parent=None):
super().__init__(parent)
self.iface = iface
self.setWindowTitle("最简插件")
self.setMinimumWidth(300)
安装及实时更改刷新插件
安装
-
放置插件 在
设置
->用户配置
->打开当前配置文件夹
->找到python/plugins
将插件整个文件放在里面 -
安装 在QGIS中,选择
插件
->插件管理器
->获取新插件
->搜索插件名称
->安装
实时更改刷新插件
在QGIS中,安装Plugin Reloader
插件,用于实时刷新插件,在插件代码有更改时,选择相应的插件刷新即可

通过以上步骤介绍了如何创建一个最简的QGIS插件,以及如何安装和实时刷新插件。