编写一个处理插件
根据您要开发的插件类型,可能最好将其功能添加为处理算法。这样可以在QGIS中提供更好的集成,附加功能(因为它可以在Processing的组件中运行,例如建模器或批处理接口),并且可以缩短开发时间。
要分发这些算法,您应该创建一个新插件,将其添加到“处理工具箱”中。插件应包含一个算法提供程序,该程序必须在实例化插件时进行注册。
从头开始创建
要从头开始创建一个包含提供算法程序的插件,您可以使用“Plugin Builder”执行以下步骤:
-
安装Plugin Builder插件
-
使用“插件生成器”创建一个新插件。当Plugin Builder要求您使用模板时,选择“ Processing provider”。
-
创建的插件包含具有单个算法的提供程序。提供程序文件和算法文件均已包含注释有关如何修改提供程序和添加其他算法的信息。请参阅他们以获取更多信息。
更新插件
如果要将现有插件添加到Processing,则需要添加一些代码。
-
在
metadata.txt
文件中,您需要添加一个变量:hasProcessingProvider=yes
-
在使用
initGui
方法设置插件的Python文件中,您需要修改以下几行:from qgis.core import QgsApplication from .processing_provider.provider import Provider class YourPluginName(): def __init__(self): self.provider = None def initProcessing(self): self.provider = Provider() QgsApplication.processingRegistry().addProvider(self.provider) def initGui(self): self.initProcessing() def unload(self): QgsApplication.processingRegistry().removeProvider(self.provider)
-
您可以创建一个
processing_provider
文件夹包含以下三个文件:-
__init__.py
--空文件,这是制作有效的Python包所必需的。 -
provider.py
这将创建处理提供程序并公开您的算法。from qgis.core import QgsProcessingProvider from .example_processing_algorithm import ExampleProcessingAlgorithm class Provider(QgsProcessingProvider): def loadAlgorithms(self, *args, **kwargs): self.addAlgorithm(ExampleProcessingAlgorithm()) # add additional algorithms here # self.addAlgorithm(MyOtherAlgorithm()) def id(self, *args, **kwargs): """The ID of your plugin, used for identifying the provider. This string should be a unique, short, character only string, eg "qgis" or "gdal". This string should not be localised. """ return 'yourplugin' def name(self, *args, **kwargs): """The human friendly name of your plugin in Processing. This string should be as short as possible (e.g. "Lastools", not "Lastools version 1.0.1 64-bit") and localised. """ return self.tr('Your plugin') def icon(self): """Should return a QIcon which is used for your provider inside the Processing toolbox. """ return QgsProcessingProvider.icon(self)
-
example_processing_algorithm.py
包含示例算法文件。复制/粘贴脚本模板文件的内容,然后根据需要进行更新。
-
-
现在,您可以在QGIS中重新加载插件,并且应该在“处理”工具箱和建模器中看到示例脚本。
©版权所有2002-现在,QGIS项目 最近更新于2020年4月3日09:14。
使用Sphinx使用Read the Docs提供的主题构建。