基于Qt的插件

特别声明

为确保插件的兼容性,请使用Qt 6.8.3版本进行开发。

基于Qt开发的插件, 可以查看示例:数据校验器

插件接口如下:

class XFlowPluginInterfaceV1
{
public:
    virtual QString pluginApiVersion() const = 0;

    virtual QString caption() const = 0;
    virtual QString name() const = 0;
    virtual int inPorts() const = 0;
    virtual int outPorts() const = 0;
    virtual QWidget *newWidget() = 0;
    virtual QByteArray handleData(QByteArray const &data, int const index, QWidget *ui) = 0;

    virtual QJsonObject save(QWidget *ui) const { return QJsonObject(); }
    virtual void load(const QJsonObject &parameters, QWidget *ui) { Q_UNUSED(parameters); }
    virtual void setLanguage(const QString &language) { Q_UNUSED(language); }
};

插件接口版本

接口声明:

QString pluginApiVersion() const;

返回值:

返回一个字符串,表示插件接口版本。目前支持的版本如下:

xFlow版本 支持的插件API
3.0.x 1.0

插件说明

接口声明:

QString caption() const;

返回值:

返回一个字符串,表示插件的标题。

输入端口数量

接口声明:

int inPorts() const;

返回值:

输入端口的数量。

输出端口数量

接口声明:

int outPorts() const;

返回值:

输出端口的数量。

创建插件UI

接口声明:

QWidget *newWidget();

返回值:

插件节点的UI。

处理数据

接口声明:

QByteArray handleData(QByteArray const &data, int const index, QWidget *ui) = 0;

参数说明:

  • data:输入数据
  • index:输入端口索引
  • ui:插件UI

返回值:

  • 返回处理后的数据(如果不需要输出,返回一个空的QByteArray()即可)

保存插件UI参数

接口声明:

QJsonObject save(QWidget *ui) const { return QJsonObject(); }

返回值:

需要保存的参数,返回一个QJsonObject对象。

加载插件UI参数

接口声明:

void load(const QJsonObject &parameters, QWidget *ui) { Q_UNUSED(parameters); }

参数说明:

  • parameters:保存的参数
  • ui:插件UI

设置插件语言

接口声明:

void setLanguage(const QString &language) { Q_UNUSED(language); }

参数说明(目前xFlow支持以下语言):

取值 说明
en 英文
zh_CN 简体中文