互联网 qkzz.net
全刊杂志网:首页 > 女性 > 文章正文
刊社推荐

基于Graphics View的组态仿真框架的设计


□ 赵保学 汪琴琴

  [摘要]设计一种基于Qt Graphics View的组态仿真框架。按照Graphics View模块化的设计思路,首先介绍其每个模块的特性,并在此基础上提出组态仿真的设计要素。最后提出控制策略和数据库的设计思路。
  [关键词]Qt Graphics View 组态 仿真 控制策略
  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0320043-01
  
  一、引言
  随着信息技术和自动化技术的飞速发展,可视化组态软件系统在工程设计、地形勘测、游戏开发等诸多领域都有着广泛的应用。开发一款控制算法高效、功能完善且具有灵活扩展性的组态仿真软件可能是一项十分复杂的工作,但优秀的软件框架无疑是至关重要的。
  Qt是一套优秀的跨平台应用程序开发包,自4.2版本开始引入的Graphics View框架对于开发者有很大的吸引力。Graphics View提供基于图元的模型视图设计方式,具备完善的图元管理、碰撞检测、外部事件处理及坐标变换等功能。Graphics View包含三个主要模块,它们分别是场景(Scene)、视图(View)和图元(Item)。下文将从模块的角度,利用Graphics View设计一个通用的组态仿真框架。
  二、视图模块
  Graphics View的视图模块提供了场景的载体,其实现类为QGraphicsView, 该类继承自QAbstractScrollArea,是一个可滚动的窗口组件。在设计过程中,可以直接利用QGraphicsView的子类作为软件的顶层组件,更常用的方法是将其作为QMainWindow的中心部件,这样可以充分利用QMainWindow的菜单栏和工具栏实现功能的统一化布局和管理。
  视口的几何变换功能可以在该模块完成。QGraphicsView类提供了统一的视口变换方法setMatrix,从而将旋转、缩放、平移、仿射等变换统一为矩阵变换。值得注意的是,矩阵变换仅改变场景的显示效果,并不影响实际的图元数据。所有这些功能可以转化成为模块的接口,通过信号槽机制连接用户界面,响应用户操作。
  三、场景模块
  Graphics View的场景模块主要由QGraphicsScene类来实现。绘图场景模块位于整个组态仿真框架的中间层次:外层有可视化模块QGraphicsView的支持,同时场景也管理着框架最内层次的图元模块、控制着图元的几何变换和渲染、重绘、设置字体和颜色等变换。利用场景可以实现对大量不同类型图元的系统方便的管理。
  在仿真框架中,我们将控制逻辑加入到该模块,使其具有控制器的功能。根据软件的具体需求不同,该模块可能执行不同的操作,一般分为以下几类:1.响应各种鼠标和键盘事件,实现对图元的编辑功能;2.响应图元状态改变的事件(包括图元焦点事件、位置改变事件、文字插入事件等);3.通过控制逻辑执行相应的图元处理,并将处理结果反馈给视图模块和相应的图元;4.通过事件广播机制管理场景内各种类型图元的属性。 ......
很抱歉,暂无全文,若需要阅读全文或喜欢本刊物请联系《硅谷》杂志社购买。
欢迎作者提供全文,请点击编辑
分享:
 

了解更多资讯,请关注“木兰百花园”
摘自:硅谷
分享:
 
精彩图文


关键字
支持中国杂志产业发展,请购买、订阅纸质杂志,欢迎杂志社提供过刊、样刊及电子版。
关于我们 | 网站声明 | 刊社管理 | 网站地图 | 联系方式 | 中图分类法 | RSS 2.0订阅 | IP查询
全刊杂志赏析网 2017