旺谷图控与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中,实现对旺谷图控系统运行环境管理。
头文件包含:
include包含entityimpl.h。
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中,实现对旺谷图控系统运行环境管理。
头文件包含:
include包含entityimpl.h。
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集成开发相关推荐
- qt android漂亮控件,qt android 开发之炫酷控件的制做
手机应用开发,就是吸引用户,要吸引用户,确定离不开用户体验!此次给你们分享一个自做的炫酷qml控件:fanControler 这个控件目前有点bug,不过整体效果仍是很赞的,经过滑动划片来控制风扇的转 ...
- 【iOS】简单易用的折线图控件
一个简单易用的折线图控件,最近项目工程中需要用到一个折现图,看了网上的一些例子,但都不能满足UED的特殊要求,所以只能自己写了一个. 先来看下效果图: 基本实现以下功能: 支持自定义Y轴坐标数 支持自 ...
- python集成开发环境中可使用什么快捷键运行程序_1.4 Python集成开发环境(2)
1.4 Python集成开发环境(2) 3.EditPlus编辑器环境的配置 在开发中,除了使用开发工具外,还可以使用编辑器进行开发.最常使用的编辑器就是EditPlus.使用EditPlus进行程序 ...
- Qt界面开发(各种控件以及图表)
Qt界面开发(各种控件以及图表) 1.Qt简洁窗体 源代码链接:点击打开链接 2.QT漂亮界面 源代码链接:点击打开链接 3.音乐播放器界面 源代码链接:点击打开链接 4.六宫格界面 源代码链接:点击 ...
- arduino与java,Arduino具有与Java和C语言类似的IDE集成开发环境和图形化编程环境
Arduino具有与Java和C语言类似的IDE集成开发环境和图形化编程环境 更多相关问题 听力原文:W: Hi, Steve, good to see you are up and around a ...
- 搭建QT和VS2010集成开发环境
转载请注明出处:http://blog.csdn.net/xiaowei_cqu/article/details/7330759 在网上搜了各种教程,(尤其是这篇各种转载http://tech.tec ...
- Qt在linux下无法输入中文,Ubuntu使用集成开发环境QT无法输入中文的解决方法
QT Creator是轻量级集成开发环境,在Ubuntu系统操作中,使用QT时无法输入中文,遇到这种情况要如何处理呢?下面小编就给大家介绍下Ubuntu如何解决QT无法输入中文问题. 1 安装搜狗输入 ...
- lubuntu18.04工控屏QT开发
lubuntu18.04工控屏QT开发--备忘 系统更新 中文语言包及输入法 QT安装 QWT安装 QT程序的打包和运行 Lubuntu开机自启动脚本程序方法 Lubuntu开机跳过输入密码自动登录 ...
- 【机器视觉】Qt集成Halcon开发环境详解(一)
00. 目录 文章目录 00. 目录 01. Windows平台下QT编译器 02. Qt下安装MSVC编译器 03. Qt下编译Halcon应用 04. Qt工程配置文件参考 05. 附录 01. ...
最新文章
- 云计算架构下的CRM
- [Google Guava] 9-I/O
- poj1664(放苹果)
- 学用MVC4做网站五:5.1添加文章
- 初创公司怎么做销售数据分析_初创公司与Faang公司的数据科学
- python执行shell命令
- Linux命令笔记(一)
- DataReader类访问字段的值
- ubuntu 下 lighttpd 支持 mod_cgi 的配置文件
- xadmin可能是帮助我完成django网站的一大助力
- 线段树相关(研究总结,线段树)
- 【2012百度之星/初赛上】小小度刷礼品
- 维多利亚计算机研究生,2020年惠灵顿维多利亚大学计算机信息硕士申请条件
- Android加载PDF文档
- BiliBili下载.flv视频文件重命名
- 后台SpringBoot + Mybatis开发遇到的一些坑
- 程序员,绝不认输!!
- 表白php制作教程视频,制作表白视频的软件 怎么制作出好看的表白小视频
- 哪所大学教php_世界大学排行榜盘点:THE排名中清华北大雄踞亚洲高校前2!内地大学十强分别是…...
- Directx11基础教程一之Directx11框架
热门文章
- 多米诺骨牌上演:三箭资本崩盘始末
- 什么是友情? 什么是爱情?
- 在VirtualBox上安装deepin
- 新技术加速隐私暴露,如何应对?(二)
- 量子计算机的相干特征,几乎不受损耗和退相干影响的量子态,旨在推动量子计算机发展!...
- linux中有一个备份程序,技术|SBackup: 一个Linux下的简单备份软件
- 机器学习预测世界杯球队冠
- Windows连接ssh时 Permissions for ‘.pem‘ are too open解决方法
- 继续安利两个漫画App
- Guass列选主元消去法和三角分解法