基于Qt的组件化图形平台系统结构

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

组件化通用图形平台EISGraphex

编写:胡剑锋

审核:沈全荣

批准:陈松林

南京南瑞继保电气有限公司

2005年9月

组件化通用图形平台介绍

1.概述

组件化通用图形平台(EISGraphex)是一套图形类应用的支撑平台的核心库,提供对各种类型组件的管理和扩展、各种窗口的管理、消息机制、脚本管理、数据管理等机制,来提供满足有图形界面需求的开发支持,使得图形界面开发的统一性、一致性、扩展性。平台提供一套二次应用建模工具,可用来创建各种图形应用界面的系统,该系统不仅可以绘制一般的画面,还能用来搭建各种形式的窗体应用,如:框架窗体、普通窗体、对话框和弹出菜。

组件化通用图形平台的特点如下:

组件化。该方法保证一切都以组件的形式存在,使用时只要将各种组件组织一番就可搭建形成一个非常漂亮的GUI应用系统,所以系统的使用也因此变得很方便。还有就是组件化方法还有效地增强了功能模块的复用性,应用建模人员只要一次建模,就可以多次使用,大大减少了某些不必要的重复劳动,如:各种图形复合组件等。

二次开发。图形平台是一个开发环境,支持快速开发一个应用系统,提供模型的解释执行和编译执行,便于调试和发布。

可视化。提供可视化方式实现多种窗口建模,数据建模,所见即所得。

较强的可扩展性。可扩展性一方面是指平台的脚本支持功能,应用建模人员可以使用脚本语言任意扩充自己所需要的界面功能。另一方面主要表现在各种组件模型的扩充,尤其是各种应用所需的图形复合组件,用户可以利用平台工具任意创建各种应用性质的复合组件。

跨平台。采用C++和Qt开发,跨Sun Solaris和Windows等主流操作系统

其它优点,如:可靠性好、简单易用等,这里就不一一列出了。

当然,由于平台的定位相对较高,使用该系统需要用户具备一些基本的编程知识和技能,主要在脚本开发和应用接口组件创建时使用。

2.系统总体架构

组件化通用图形平台的主要目的是为各种具体的应用搭建和定制用户界面,支持工程维护人员和最终用户迅速便捷地创建复杂的、强大的、符合自己习惯的操作员界面显示。

组件化通用图形平台是一个建模、组织、运行与图形界面相关的软件系统,包括GUI 应用容器、工具集(数据建模工具、图形组件构建工具、GUI应用界面构建容器)、基本组件库、脚本和应用编程接口等。

构成一个GUI应用的基本实体要素是窗口、组件、公共数据和脚本,而这些要素分别由窗口管理、窗口、数据字典、脚本容器进行管理,这四个部分又可通过数据总线相互发生关系。所有这些元素均包含在GUI应用容器中进行解释运行。

组件包含功能组件、应用接口组件和图形组件。功能组件用于实现某一特定、复杂的功能(如画面编辑组件、报表制作组件、GIS组件等);应用接口组件用于同后台应用系统进行数据通讯、数据类型转换等其他同具体应用关联的功能,应用接口组件主要由GUI应用开发人员通过编写代码实现;图形组件用于表现整个GUI应用的界面。

公共数据包含基本数据类型、复合数据类型、数据容器类型和数据对象树。复合数据由基本数据构成,数据容器用于管理某一类型的基本数据或复合数据,数据对象树表示了数据对象和数据容器之间的层次关系。公共数据的类型和对象由数据字典来实现管理。

脚本包含组件脚本、窗口脚本、GUI应用脚本、全局脚本和系统函数。脚本的实体都包含在容器中。

图1 系统结构图

3图形平台开发库

3.1平台支持类库

系统支持类是支持系统运行的一些基本库,共提供6个动态连接库。

※基本类库

方式:动态连接库

输出类:

基本组件类(RBaseComponent):是所有组件的基类。

功能组件类(RFunComponent):作为功能组件输出的接口类。是功能组件在图形平台的代表。

应用接口组件类(RAppComponent):作为应用接口组件输出的接口类。是应用接口组件在图形平台的代表。派生于基本组件类。

图形组件类(RGraphComponent):是所有图形组件的基类。

数据总线(RDataBus):数据总线的管理类。用于实现消息的分发、处理。

公共数据基类(RDataObject):是所有公共数据的基本类,提供标准的设置、读取等服务。

BOOL数据基类(RDataBool):图形平台提供的布尔型数据类型。

INT数据基类(RDataInt):图形平台提供的整型数据类型。

BYTE数据基类(RDataByte):图形平台提供的字节型数据类型。

FLOAT数据基类(RDataFloat):图形平台提供的浮点型数据类型。

COLOR数据基类(RDataColor):图形平台提供的颜色型数据类型。

容器数据基类(RDataList):图形平台提供的容器型数据类型。

树型数据基类(RDataTree):图形平台提供的树型数据类型。

数据对象管理类(RDataManage:同数据类型管理动态连接库一起构成数据字典。

提供公共数据对象的管理,包括创建、删除和检索;其中创建方法的实现如下:首先判断要创建的是否基本数据或基本数据容器,若是,则直接new一个对应类型的对象,若否,则调用数据类型管理库的接口函数来创建一个对象,然后把得到的新对象加入到管理队列中,并把对象加入到QSA中。

※数据类型管理库

方式:动态连接库。在数据建模后自动更新该动态库。

输出类:数据类型管理类:实现数据类型的管理。向数据对象管理类提供创建复合数据和复合数据容器对象的方法;提供数据类型读目录方法;在初始化时,负责把数据字典内的所有数据类型加入到QSA中,最初的动态库中不含任何数据类型。

※组件类库

方式:动态连接库。

输出类:

基本图符类:一系列的基本图符类。包括线类、填充类、图片类等。

界面组件类:一系列的窗口界面组件。包括按钮类、框架类等

复合组件代表类:用于描述复合组件的类。

框架窗口类:实现框架窗口。

普通窗口类:实现带滚动条的窗口。

对话框类:实现对话框。

弹出菜单类:实现弹出菜单。

※文件解析库

方式:动态连接库。

输出类:

APM文件解析类:提供对APM文件的读取和保存。

WPM文件解析类:提供对WPM文件的读取和保存。

GPM文件解析类:提供对GPM文件的读取和保存。

DPM文件解析类:提供对DPM文件的读取和保存。

解析过程中包括实体对象的创建,通过调用以上的动态库输出函数实现。

※窗口组件管理库

方式:动态连接库

输出类:

相关文档
最新文档