旺谷图控与QT集成开发

1.与QT集成开发

1.1旺谷图控QT开发包

QT开发包中包含:头文件、静态库、动态库、元件库、vgs工程或元件组成。其中元件库和vgs工程由vgs开发工具发布,拷贝到Qt工程的debug和release下的vgsDeploy。

  • 头文件(include):

图 开发包中头文件

  • 静态链接库(lib):

图 开发包中lib库

  • 动态库(dll):

图 开发包中动态库

  • 元件库(lib)和系统配置路径(sys):

图 开发包中元件库

  • 发布的vgs工程文件夹或发布的元件文件夹:

QT集成开发IDE可以选择QT Creator或者Visual Studio,下面分别介绍一下两个工具的环境配置。

1.2QT Creator开发环境集成

1.2.1创建Qt工程

由Qt Creator开发工具创建一个Qt Widgets Application工程vgsdemo1。

图 创建QT工程

1.2.2配置元件开发库依赖

使用Qt Creator添加库的功能添加libvgs_p.lib和libvgsent_p.lib。

图 配置QT工程库依赖步骤1

图 配置QT工程库依赖步骤2

图 配置QT工程库依赖步骤3

图 配置QT工程库依赖步骤4

图 配置QT工程库依赖步骤5

添加完Vgs库后,修改后的Qt pro工程文件如下:

图5 配置QT工程库其他依赖

1.2.3旺谷图控系统运行环境管理

在QT工程的main.cpp中,实现对旺谷图控系统运行环境管理。

  1. 头文件包含:

include包含entityimpl.h。

  1. main函数中图控系统环境管理:

分为两个步骤,初始化图控环境,退出图控环境。具体位置如下图所示。

图 图控开发环境管理过程

实现代码参考vgsdemo1源码。

1.3Visual Studio开发环境集成

1.3.1创建VS工程

Visual Studio安装QT插件,由Visual Studio开发工具创建一个Qt Widgets Application工程Qt5VgsDemo。

图1创建QT工程

1.3.2配置元件开发库依赖

在VS工程的main.cpp中,实现对旺谷图控系统运行环境管理。

  1. 头文件包含:

include包含entityimpl.h。

  1. main函数中图控系统环境管理:

分为两个步骤,初始化图控环境,退出图控环境。具体位置如下图所示。

图48VGS库链接和初始化

实现代码参考Qt5VgsDemo源码。

1.4添加Vgs工程资源或独立元件资源

用“旺谷图库”工具创建vgs工程,创建数据词典和vgs画面文件,完成后发布(或拷贝)到Qt工程的debug和release目录下。这样就可以在QT工程中使用vgs工程的数据词典和vgs画面文件,以及vgs文件依赖的vgs元件文件。

另一种情况是用户将元件作为一个标准QT控件使用,此时用“旺谷图库元件”设计工具创建一个或多个元件文件,完成后发布到Qt工程的debug和release目录下。通过别名体系同样可以在QT工程中使用。

1.5 QT集成VGS画面加载和数据交互

使用gs::registerDataSource()方法注册数据源,

创建VgsView Widget并添加到Qt的布局器中,

使用load()方法加载Vgs画面文件,

使用gs::setDataSetCallback()注册数据变化后的回调函数。

向VgsView推送数据,实现界面数据展示和变化。

数据变更后在回调中做后处理。

实现代码参考Qt5VgsDemo源码。

1.5.1加载画面文件方法

  • 定义:

bool load(const gs::WString &url, gs::Data &vgs, bool bEdit)

  • 简要说明:

调用QVgsView加载画面文件方法

  • 参数说明:

序号

参数名称

参数类型

说明

1

url

gs:Wstring

画面资源路径,支持别名体系

2

vgs

gs::Data

画面文件内容

3

bEdit

bool

是否编辑模式

返回值:

序号

参数类型

说明

1

bool

画面是否加载成功

1.5.2数据推送方法

  • 定义:

bool dataChanged(const gs::String &dataName, const gs::String &field, const gs::Variable &value, gs::Int dt, gs::Int8 alarmCode)

  • 简要说明:

调用数据推送方法

  • 参数说明:

序号

参数名称

参数类型

说明

1

_dataName

QString

数据源名称名称

2

_field

QString

参数名称

3

value

gs::Variable

参数值,变体

4

dt

gs:Int64

时间戳

5

alarmCode

gs:Int8

告警码

返回值:

序号

参数类型

说明

1

bool

数据推送结果

1.5.3数据变更回调方法原型

  • 定义:

typedef bool (*DATASET_CALLBACK)(const QString& _dataName, const QString& _field, const gs::Variable& value, gs::Int64 dt)

  • 简要说明:

调用数据变更回调方法

  • 参数说明:

序号

参数名称

参数类型

说明

1

_dataName

QString

数据源名称名称

2

_field

QString

参数名称

3

value

gs::Variable

参数值,变体

4

dt

gs:Int64

时间戳

返回值:

序号

参数类型

说明

1

bool

询问式返回值,可阻止变更

1.6Qt工程中使用元件

用户可以将元件作为一个标准QT控件使用。图控系统中提供了一个QT控件QtVgsWidget,它是一个标准的Qt控件,它负责URL加载元件文件。

图49Qt集成开发对象

可以将QVgsWidget看成元件的代理对象,调用QVgsWidget的set/get,comand来实现对元件属性和服务方法的调用。元件的信号也会转换为VgsSignal信号,它为Qt标准信号。QVgsWidget控件接口说明如下:

1.6.1加载元件文件方法

  • 定义:

bool load(const gs::WString &url, gs::Data &vgs)

  • 简要说明:

QVgsWidget加载元件

  • 参数说明:

序号

参数名称

参数类型

说明

1

url

gs:Wstring

元件资源路径,支持别名体系

2

vgs

gs::Data

元件文件内容

返回值:

序号

参数类型

说明

1

bool

元件是否加载成功

1.6.2设置元件属性值

  • 定义:

bool set(const gs::String &_propertyName, const gs::Variable &v)

  • 简要说明:

设置所代理的元件属性值

  • 参数说明:

序号

参数名称

参数类型

说明

1

_propertyName

gs:String

元件属性名称

2

v

gs::Variable

元件属性值,Variable类型可以与Qt的QVariant进行类比。

返回值:

序号

参数类型

说明

1

bool

元件属性设置是否成功

1.6.3获取元件属性值

  • 定义:

bool get(const gs::String &_propertyName, gs::Variable &v) const

  • 简要说明:

获取代理的元件属性值

  • 参数说明:

序号

参数名称

参数类型

说明

1

_propertyName

gs:String

元件属性名称

2

v

gs::Variable

返回的元件属性值,Variable类型可以与Qt的QVariant进行类比。

返回值:

序号

参数类型

说明

1

bool

元件属性读取是否成功

1.6.4调用元件服务方法

  • 定义:

bool command(const gs::String &_cmdName, std::vector<gs::Variable *> &vs)

  • 简要说明:

调用代理的元件服务方法

  • 参数说明:

序号

参数名称

参数类型

说明

1

_serviceName

gs:String

元件服务方法名称

2

vs

std::vector<gs::Variable>

服务方法的参数列表

返回值:

序号

参数类型

说明

1

bool

服务方法的调用结果

1.6.5元件转发信号

QVgsWidget信号为元件信号的转发,其定义如下:

Q_SIGNALS:

void VgsSignal(const GsMessage &msg );

参数说明:

序号

参数名称

参数类型

说明

1

_msg

GsMessage

元件信号对象

1.6.6 Qt使用元件代码示例

旺谷图控​www.vowgroup.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值