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

旺谷图控与QT集成开发相关推荐

  1. qt android漂亮控件,qt android 开发之炫酷控件的制做

    手机应用开发,就是吸引用户,要吸引用户,确定离不开用户体验!此次给你们分享一个自做的炫酷qml控件:fanControler 这个控件目前有点bug,不过整体效果仍是很赞的,经过滑动划片来控制风扇的转 ...

  2. 【iOS】简单易用的折线图控件

    一个简单易用的折线图控件,最近项目工程中需要用到一个折现图,看了网上的一些例子,但都不能满足UED的特殊要求,所以只能自己写了一个. 先来看下效果图: 基本实现以下功能: 支持自定义Y轴坐标数 支持自 ...

  3. python集成开发环境中可使用什么快捷键运行程序_1.4 Python集成开发环境(2)

    1.4 Python集成开发环境(2) 3.EditPlus编辑器环境的配置 在开发中,除了使用开发工具外,还可以使用编辑器进行开发.最常使用的编辑器就是EditPlus.使用EditPlus进行程序 ...

  4. Qt界面开发(各种控件以及图表)

    Qt界面开发(各种控件以及图表) 1.Qt简洁窗体 源代码链接:点击打开链接 2.QT漂亮界面 源代码链接:点击打开链接 3.音乐播放器界面 源代码链接:点击打开链接 4.六宫格界面 源代码链接:点击 ...

  5. arduino与java,Arduino具有与Java和C语言类似的IDE集成开发环境和图形化编程环境

    Arduino具有与Java和C语言类似的IDE集成开发环境和图形化编程环境 更多相关问题 听力原文:W: Hi, Steve, good to see you are up and around a ...

  6. 搭建QT和VS2010集成开发环境

    转载请注明出处:http://blog.csdn.net/xiaowei_cqu/article/details/7330759 在网上搜了各种教程,(尤其是这篇各种转载http://tech.tec ...

  7. Qt在linux下无法输入中文,Ubuntu使用集成开发环境QT无法输入中文的解决方法

    QT Creator是轻量级集成开发环境,在Ubuntu系统操作中,使用QT时无法输入中文,遇到这种情况要如何处理呢?下面小编就给大家介绍下Ubuntu如何解决QT无法输入中文问题. 1 安装搜狗输入 ...

  8. lubuntu18.04工控屏QT开发

    lubuntu18.04工控屏QT开发--备忘 系统更新 中文语言包及输入法 QT安装 QWT安装 QT程序的打包和运行 Lubuntu开机自启动脚本程序方法 Lubuntu开机跳过输入密码自动登录 ...

  9. 【机器视觉】Qt集成Halcon开发环境详解(一)

    00. 目录 文章目录 00. 目录 01. Windows平台下QT编译器 02. Qt下安装MSVC编译器 03. Qt下编译Halcon应用 04. Qt工程配置文件参考 05. 附录 01. ...

最新文章

  1. 云计算架构下的CRM
  2. [Google Guava] 9-I/O
  3. poj1664(放苹果)
  4. 学用MVC4做网站五:5.1添加文章
  5. 初创公司怎么做销售数据分析_初创公司与Faang公司的数据科学
  6. python执行shell命令
  7. Linux命令笔记(一)
  8. DataReader类访问字段的值
  9. ubuntu 下 lighttpd 支持 mod_cgi 的配置文件
  10. xadmin可能是帮助我完成django网站的一大助力
  11. 线段树相关(研究总结,线段树)
  12. 【2012百度之星/初赛上】小小度刷礼品
  13. 维多利亚计算机研究生,2020年惠灵顿维多利亚大学计算机信息硕士申请条件
  14. Android加载PDF文档
  15. BiliBili下载.flv视频文件重命名
  16. 后台SpringBoot + Mybatis开发遇到的一些坑
  17. 程序员,绝不认输!!
  18. 表白php制作教程视频,制作表白视频的软件 怎么制作出好看的表白小视频
  19. 哪所大学教php_世界大学排行榜盘点:THE排名中清华北大雄踞亚洲高校前2!内地大学十强分别是…...
  20. Directx11基础教程一之Directx11框架

热门文章

  1. 多米诺骨牌上演:三箭资本崩盘始末
  2. 什么是友情? 什么是爱情?
  3. 在VirtualBox上安装deepin
  4. 新技术加速隐私暴露,如何应对?(二)
  5. 量子计算机的相干特征,几乎不受损耗和退相干影响的量子态,旨在推动量子计算机发展!...
  6. linux中有一个备份程序,技术|SBackup: 一个Linux下的简单备份软件
  7. 机器学习预测世界杯球队冠
  8. Windows连接ssh时 Permissions for ‘.pem‘ are too open解决方法
  9. 继续安利两个漫画App
  10. Guass列选主元消去法和三角分解法