标题:工业自动化软件设计 之七 概说组态软件
作者:myer
日期:2011-12-31 16:54
内容:
马上元旦了,下午无事,继续上次,工作、思路再总结一下。今天先就说说组态软件。
一般说的GUI组态,就是把预先定义的、系统支持的各种UI元素,以模板、元件、组等格式,在页面上拖拖拉拉、设置属性,最后以某种格式保存起来,然后运行时组件将该文件load进来,辅以适当的脚本支持,完成各种监控功能。
扩展来说,数据对象的组态、硬件系统的组态、程序处理逻辑的组态等等,在此基础上扩充,都是类似的。
编写组态软件,UI元素的画法,以及优化,是很难处理的好的。幸运的是,我们有了Qt。
从Qt3开始,提供的XML+QtCanvas+QSA,已经为编写组态软件提供了基础支持,剩下的就是编写线、矩形、文本、位图、widget等等的逻辑了。从应用来看,XML+QtCanvas+QSA效率已经非常不错,并且QSA脚本也很高效、易用、强大。
Qt4,提供的QGraphicView+QScript组件,号称效率提高了若干倍,用来编写组态软件,更是得心应手。
而从Qt的QML组件慢慢普及以后,QML和组态是如此的相像,是否能够用到QML的强大功能呢?要是能用到QML,那么组态软件功能将大大增强,灵活性大大提高,而类似Flickable 、ListModel等等功能是顺手而来,何乐而不为!后面再详述。
到Qt5,QML已经是主流技术了,已经支持以QML描述的应用程序了,QML+js=应用,这不正是组态软件要实现的吗,用QML这一通用平台来做组态软件更是越来越简单,功能更是越来越强大了。前途是美好的。
先从基本说起,一个组态软件,除了应用Qt的QGraphicView+QScript外,你需要实现的是一个属性编辑器、各个基本图元例如矩形、文本、位图等等,成组,模板,undo,拖拖拉拉,保存/读取格式,运行态的脚本执行逻辑,当然如果你使用QML,运行态就不用设计了,就这些了,剩余的就是扩充功能了。
使用Qt的MVC类设计一个属性编辑器是很简单的事情,但是如果设计的好用、易用、易扩展,也并不是那么简单。
&nb ..
#1 [xinqingfly 12-31 17:33]
新年快乐
#2 [begboy 01-01 21:06]
一直关注楼主该系列。
赞一个!
#3 [huiliangshiy 08-15 18:27]
想看看你的demo