在上一个教程中,构建Python插件(QGIS3),您学习了如何创建python插件-包括用于处理数据的用户界面和自定义逻辑。尽管这些类型的插件很有用,但将设计用户界面的负担放在了插件作者的身上。这导致每个插件都有不同的交互方式,这会使用户感到困惑。此外,常规插件不会与QGIS的其他部分交互。例如,您不能使用其他算法的插件功能。如果您要编写的插件主要用于分析,并且您想要进行的用户交互仅限于让用户选择输入和输出,那么使用处理框架可以更轻松,更优选地编写插件。它消除了您设计用户界面的需要-简化了过程。内置的处理库根据您的输入创建一个标准的处理接口,该接口的外观和行为与QGIS中的任何其他处理算法一样。它还可以与其余Processing框架无缝集成-因此您的插件算法可以用于批处理,图形建模器,从python控制台调用等。
任务概述
我们将从教程构建Python插件(QGIS3)作为处理插件中重新实现一个简单的 插件。这将导致一个名为的新处理提供程序和一种算法,该算法将允许用户选择矢量层并将其属性写入CSV文件。Save Attributes
Save Attributes as CSV
获取工具
文本编辑器或Python
任何类型的软件开发都需要一个好的文本编辑器。如果您已经拥有喜欢的文本编辑器或IDE(集成开发环境),则可以在本教程中使用它。否则,每个平台都会为文本编辑器提供多种免费或付费选项。选择一个适合您的需求。
本教程在Windows上使用Notepad ++编辑器。
Windows
Notepad ++是一个很好的Windows免费编辑器。下载并安装Notepad ++编辑器。
注意
如果您使用的是Notepad ++,请确保转到设置‣首选项‣标签设置并启用按空格替换。Python对空格非常敏感,此设置将确保制表符和空格得到正确处理。
Plugin Builder插件
有一个有用的QGIS插件,名为,可为该插件创建所有必需的文件和样板代码。查找并安装插件。有关如何安装插件的更多详细信息,请参见使用插件。Plugin Builder
Plugin Builder
Plugin Reloader插件
这是另一个允许插件迭代开发的帮助程序插件。使用此插件,您可以更改插件代码并将其反映在QGIS中,而不必每次都重新启动QGIS。查找并安装插件。有关如何安装插件的更多详细信息,请参见使用插件。Plugin Reloader
注意
插件重新加载器是一个实验性插件。如果找不到,请确保在“插件管理器”设置中选中了“同时显示实验性插件”。
程序
打开QGIS。转到插件‣插件构建器‣插件构建器。
您将看到带有表单的QGIS Plugin Builder对话框。您可以在表单中填写与我们的插件有关的详细信息。的类名称将是Python类的含插件的逻辑名称。这也是包含所有插件文件的文件夹的名称。输入
SaveAttributes
作为类名。该插件名称是根据该插件将出现在名称 插件管理器。输入名称为。在描述字段中添加描述。该模块名称将是插件的主要蟒蛇文件的名称。输入为Save Attributes (Processing)
save_attributes_processing
。保留版本号不变,并在相应的字段中输入您的姓名和电子邮件地址。单击下一步。在About对话框中输入插件的简短描述,然后单击Next。
选择从模板选择。该算法的名称值将是用户如何找到在处理TOOLOX的处理算法。输入为。将“算法”组留为空白。输入提供者名称为。在提供者描述字段中输入描述。单击下一步。
Processing Provider
Save Attributes as CSV
Save Attributes
插件构建器将提示您输入要生成的文件类型。保留默认选择,然后单击下一步。
由于我们不打算发布该插件,因此您可以将Bug tracker,Repository和Home页面值保留为默认值。选中底部的将插件标记为实验框,然后点击下一步。
系统将提示您选择插件的目录。现在,将其保存到您可以轻松在计算机上找到的目录中,然后点击生成。
接下来,按生成按钮。创建插件模板后,您将看到一个确认对话框。
注意
您可能会提示您在路径中找不到pyrcc5。您可以忽略此消息。
QGIS中的插件存储在一个特殊的文件夹中。我们必须先将插件目录复制到该文件夹,然后才能使用它。在QGIS中,转到设置‣用户配置文件‣打开活动配置文件文件夹,找到当前的配置文件文件夹。
在配置文件文件夹中,将plugin文件夹复制到python‣plugins子文件夹。
现在,我们准备开始看看我们创建的全新插件。关闭QGIS,然后再次启动。转到插件‣管理和安装插件,然后在已安装标签中启用插件。
Save Attributes (Processing)
转到处理‣工具箱。您会注意到,底部有一个新的提供程序。展开以找到名为的算法。双击以启动它。
Save Attributes
Save Attributes as CSV
您会注意到一个熟悉的处理算法对话框,其中输入层有一个下拉菜单,输出层有一个选择器。现在,我们将自定义此对话框以适合我们的需求。关闭此对话框。
转到插件目录,然后
save_attributes_processing_algorithm.py
在文本编辑器中加载文件。对于我们的插件,我们将矢量层作为输入并写出CSV文件作为输出。因此,QgsProcessingParameterFeatureSink
与其为输出导入(用于矢量层),不添加QgsProce