一种基于QML的图形引擎的实现方法与流程

文档序号:15346404发布日期:2018-09-04 22:48阅读:370来源:国知局

本发明涉及一种基于qml的图形引擎的实现方法,属于基于qt开发的组态软件中图形应用自由定制的技术领域。



背景技术:

在工控领域中,组态软件一般都通过图形的方式进行显示和控制。随着自动化技术的发展,监控系统软件需要进行控制操作和内容显示也越来越复杂,因此对图形引擎工具的要求也越来越高。原先的图形引擎都是针对特定的对象进行设计,只能进行简单数据的显示及执行预先定义的控制操作。如果要增加新的控制对象,则需要针对新对象再次进行开发,通过编码实现新增加对象的数据显示和控制操作,这种做法需要重新编译并发布程序版本,增加组态软件的维护成本并给软件的稳定性和可靠性带来一定的影响。



技术实现要素:

本发明的目的是针对上述存在的问题提供一种基于qml的图形引擎的实现方法,可以方便灵活的对组态软件图形模块进行控制,减少因增加功能带来的组态软件的编译发布。

上述的目的通过以下的技术方案实现:

一种基于qml的图形引擎的实现方法,该方法为:在组态软件图形引擎中加入qml脚本的支持,图元的显示、控制操作都通过qml实现,对于新增加控制对象,针对新增加对象开发对应的qml脚本即可,组态软件图形系统会在图形加载过程中自动加载与图形或图元相关联的qml脚本,用户在通过图形系统进行操作时,通过qml脚本实现图元的显示控制以及整个图形的交互操作。

所述的基于qml的图形引擎的实现方法,所述在组态软件图形引擎中加入qml脚本的支持,具体是图形引擎会在图形过程中将图形中的各个图元注入到与图形相关联的qml脚本中,通过该脚本可以把图形中的所有图元关联起来,完成图元之间的交互与控制。

所述的基于qml的图形引擎的实现方法,所述的将图形中的各个图元注入到与图形相关联的qml脚本中时,同一种类型的图元或相近的图元对象使用同一段qml脚本,每个图元都会在各自的上下文环境中执行qml脚本,当向不同的图元对象中注入各自的数据或属性,即使脚本相同,由于图元对象具有各自队里的对象数据,因此同一段脚本根据对象数据的不同进行各自的显示及控制。

有益效果:

本发明的组态软件通过在图形引擎中加入qml脚本的支持,可以方便灵活的对组态软件图形模块进行控制,减少因增加功能带来的组态软件的编译发布。在图形引擎中加入qml脚本的支持,可以为降低组态软件图形系统开发的工作量,qml是一种脚本语言,工程人员很容易掌握,因此在工程的实施过程中可以不需要研发人员的参与,由工程人员在现场根据实际情况进行qml脚本的开发,降低了组态软件的维护及部署成本。

本发明可以适应工控领域基于qt开发的的组态软件,通过qml脚本技术快速实现组态软件图形模块功能的增加或修改。可以快速有效的通过编写qml脚本实现对组态软件图形模块中的图元及图形进行比较复杂的控制,提高组态软件图形模块的鲁棒性,节约开发和维护成本。

附图说明:

图1是图元qml脚本结构示意图。

图2是图形qml脚本结构示意图。

图3是脚本与应用程序之间的交互关系示意图。

具体实施方式:

本实施例的一种基于qml的图形引擎的实现方法,其特征在于,在组态软件图形引擎中加入qml脚本的支持,图元的显示、控制等操作都通过qml实现。如果新增加控制对象,那么只要针对新增加对象开发对应的qml脚本即可,组态软件图形系统会在图形加载过程中自动加载与图形或图元相关联的qml脚本,用户在通过图形系统进行操作时,实际上通过qml脚本实现图元的显示控制以及整个图形的交互操作。传统的组态软件中图形显示及操作只能通过预先编写好的函数代码进行特定的显示和操作相比,在图形引擎中使用qml可以更加方便快捷的进行图形显示及控制,通过qml脚本可以实现在不重新编译发布代码的情况下提供新增对象及新增功能的支持,原有对象的显示及控制需求变化也可以通过修改qml脚本来实现。本发明利用qt中qml脚本技术进行图形显示控制;其中:

qml是qtquick技术中的一部分,是一种描述性语言,语法格式类似于css描述语言,同时支持javascript形式的编程代码。qml和qt可以进行互相调用,qt中可以调用执行qml脚本,qml脚本也可以使用注册到qml引擎的qt对象。因此图形引擎可以很方便的通过qml与组态软件其他模块进行交互。

同一种类型的图元或相近的图元对象可以使用同一段qml脚本,每个图元都会在各自的上下文环境中执行qml脚本,因此可以向不同的图元对象中注入各自的数据或属性,如图1所示。因此即使脚本相同,由于图元对象具有各自队里的对象数据,因此同一段脚本可以根据对象数据的不同进行各自的显示及控制。

通过qml脚本,新增或修改功能只需要修改qml脚本文件,不需要对组态软件进行编译发布,通过重新加载执行qml脚本,可以实现在以不中断系统运行的前提下实现对组态软件进行升级和更新。

图形也可以拥有qml脚本,如图2所示。图形引擎会在图形过程中将图形中的各个图元注入到与图形相关联的qml脚本中,通过该脚本可以把图形中的所有图元关联起来,可以完成图元之间的交互与控制,让图形中的图元不是孤立的,而是组合在一起成为一个整体。

本发明方案所公开的技术手段不仅限于上述技术手段所公开的技术手段,还包括由以上技术特征等同替换所组成的技术方案。本发明的未尽事宜,属于本领域技术人员的公知常识。



技术特征:

技术总结
本发明提供一种基于QML的图形引擎的实现方法。本发明的方法为:在组态软件图形引擎中加入QML脚本的支持,图元的显示、控制操作都通过QML实现,对于新增加控制对象,针对新增加对象开发对应的QML脚本即可,组态软件图形系统会在图形加载过程中自动加载与图形或图元相关联的QML脚本,用户在通过图形系统进行操作时,通过QML脚本实现图元的显示控制以及整个图形的交互操作。使用该方法可以方便灵活的对组态软件图形模块进行控制,减少因增加功能带来的组态软件的编译发布。

技术研发人员:朱伟
受保护的技术使用者:南京智格电力科技有限公司
技术研发日:2018.03.15
技术公布日:2018.09.04
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1