您好,欢迎来到客趣旅游网。
搜索
您的当前位置:首页基于Qt的组件化图形平台系统结构

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

来源:客趣旅游网


组件化通用图形平台EISGraphex

编写:胡剑锋

审核:沈全荣

批准:陈松林

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

2005年9月

组件化通用图形平台介绍

1.概述

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

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

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

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

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

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

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

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

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

2.系统总体架构

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

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

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

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

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

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

基本数据对象1复合数据对象1数据容器1数据建模存放数据类型1数据对象工具数据类型管理基本数据对象n复合数据对象n数据容器n存放数据类型n数据对象数据字典树对象GUI应用建模工具数据总线功能组件(无窗口 )应用接口组件应用通讯接口后台应用系统窗口脚本快速脚本组件脚本图形组件功能组件(有窗口 )GUI应用脚本系统函数窗口对象图形组件脚本容器窗口容器窗口模版建模工具GUI应用运行容器统结构图

3图形平台开发库

3.1平台支持类库

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

※ 基本类库

方式:动态连接库

输出类:

图1 系

基本组件类(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文件的读取和保存。

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

※ 窗口组件管理库

方式:动态连接库

输出类:

窗口对象管理类:提供对窗口对象的管理。

窗口模板管理类:提供对窗口模板(包括基本窗口模板和应用窗口模板)的管理。

图形组件对象管理类:提供对图形组件对象的管理。

图形组件模板管理类:提供对图形组件模板的管理。

功能组件对象管理类:提供对功能组件对象的管理。

应用接口组件对象管理类:提供对应用接口组件对象的管理。

文件下载管理类(WEB服务端):提供WEB上文件的传输。

文件下载客户端类(WEB客户端):提供WEB上文件的传输。

枚举库管理类:提供对枚举数据的访问。

※ 脚本管理库

方式:动态连接库

输出类:

脚本函数类:提供QSA文件的管理、脚本函数的管理、检索。

系统函数类:提供一系列的系统函数调用。

。。。

该类库封装了所有的QSA类库。

※ guid跨平台生成器

方式:动态连接库

输出接口:

CreateGuid(),输出一个全球唯一的标识ID。

3.2关键功能组件

功能组件是在图形平台的使用中,逐步积累的。但对于某些功能组件,平台必须在最初就提供。其中包括:

※ 画面编辑功能组件:带窗口的功能组件,实现画面编辑功能。提供一个WorkSpace

作为其本身的主窗口,在其上创建一块块编辑画布。即可支持多文档的编辑。

※ 组件选择组件:带窗口的功能组件,实现组件选择、浏览等功能。

※ 定时功能组件:不带窗口的功能组件,产生各种定时事件。

所有的功能组件均输出一个RfunComponent的派生类,作为在图形平台的代表。

3.3开发工具

※ 数据建模工具:

方式:exe运行程序

功能:用于复合数据模型的建立,每次更新,都将自动编译生成数据类型管理库。

※ 组件建模工具:

方式:exe运行程序

功能:复合图形组件的建模。

※ 工程组件管理工具:

方式:exe运行程序

功能:是组件建模工具的简化版。

※ GUI应用建模工具:

方式:exe运行程序

功能:用于构建GUI应用模型的工具。

※ 本节点GUI应用管理工具:

方式:exe运行程序

功能:用于管理本节点内所有的GUI应用模型。

※ 部署工具:

方式:exe运行程序

功能:1,把组件库、基本窗口模板库进行打包成一个自解压的程序;

2,把GUI应用答包,(可以选择是否把平台的公用库一起打包)。

4二次开发过程

4.1基于平台开发的应用系统的结构

一个复杂的多进程的应用系统需要多个应用模型,每个应用模型作为一个进程运行。如下图所示:

其中,单个应用模型的结构一般包括如下几个部分:

• 窗口 - 展示给用户的界面

• 全局数据 – 暂态数据,中间数据

• 消息管理 – 消息增删改,发送和接受定义

• 脚本 – 事件处理,消息处理

• 应用接口组件 – 与应用的逻辑层的数据交互

其结构如下图所示:

每个应用存放在单独的一个目录中,包括如下文件:

• 一个应用模型文件 .apm

• 多个窗口文件 .wpm

• 一个脚本目录 script

• 一个组件个性化文件 .cpm

• 一个枚举文件 .epm

• 一个数据类型库 .dll -可选

• 一个图片目录 images

• 一个或多个应用接口组件.dll -可选

(以下略)

4.2二次开发过程

二次开发的过程如下:

(1)开发数据模型

(2).扩展组件库(可选)

– 复合组件的添加建模

– 功能组件的代码编写

(3)应用模型Amp的编辑

– IO数据对象建模

– 人机界面窗口的建模

– 复合组件个性化配置

– 应用接口组件编写

(4)应用的运行测试

(5)循环开发

(6)发布产品

如图所示:

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- kqyc.cn 版权所有 赣ICP备2024042808号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务