1 导言
用户界面是软件体系的重要组成部分,是对软件的人 机交互、操作逻辑、界面漂亮的全体规划,是体系和用户之 间进行交互和信息交流的前言,它完成信息的内部方式与人 类能够承受的方式之间的转化。QT是一个完好的运用程序 开发结构,它包含一个类库和一些跨渠道、国际化的东西, 以其强壮的功用、杰出的可移植性逐步成为一种被广泛使 用的GUI体系,它供给给运用程序开发者树立艺术级的图形 用户界面所需的一切功用。本文所描绘软件是在QT渠道下 开发完成的,为了进步软件用户界面的扩展性和界面开发的 功率,使软件的最终用户也能够经过东西对界面进行修正和 定制,本文提出了依据可扩展符号言语(eXtensible Markup Language,XML)的用户界面计划,并开宣布相应的界面管 理体系。
2 界面生成理论基础
2.1 XML界面生成技能
XML是一种在互联网上保存和传递信息的言语,以其 结构化、可扩展、灵敏等特色广泛盛行。XML有着极端灵 活的语法,能够描绘各种类型的信息。渠道无关性使其成为 跨渠道数据表明和交流的标准。XML的文档结构特别合适 存储界面模版的树形结构,各种元素、特色、注释等构成了 XML文件的根本组件,XML文档根本上能够限定为一棵特 殊的文本化的树,因而以XML文档结构树的方式简略完成 界面模版的可视化处理。依据XML的界面规划生成技能涉 及到界面所描绘的XML文档、界面组件事情监听类、界面 生成器、编程言语的组件库和界面定制东西。本文供给的软件界面是在QT渠道下构建的,要在此环境下运用XML技能生成一个界面,首先要供给界面描绘XML文档和界面组件事情监听类。界面描绘XML文档运用XML描绘界面上一切 组件及其特色,包含称号、巨细、方位、布局以及与之相对 应的事情监听类等。界面描绘XML文档能够用XML修改器 来编写,也能够从其他的数据源主动生成。界面组件事情监 听类担任监听而且处理对应界面描绘XML文档中组件的事 件,比方按钮事情、点击事情等,由组件事情引发的一系 列操作都由该类来完成。在界面描绘XML文档的解析进程 中,界面生成器会依据文档中的组件事情特色值加载进来, 依照触发履行其界说的操作。
具体操作为,在软件启动时,先读取界面信息,然后 依据界面信息生成图形用户界面。XML是一门新式的、面 向Internet运用的符号言语,它是由W3C(World Wide Web Consortium)安排在1998年拟定的一种通用言语标准。XML 既 是 标 准 通 用 标 记 语 言 ( S G M L ) 的 一 个 子 集 , 也 是 对 SGML的一种改进。运用XML作为界面装备文件的原因首要 依据以下几点:
1 ) X M L 语 法 严 格 , 格 式 灵 活 , 具 有 良 好 的 扩 展 性 和 自 描 述 性 , 所 描 述 的 形 式 与 内 容 相 分 离 , 便 于 对 界 面 元 素 的 描 述 进 行扩展;
2)XML存储的格局 简 单 、 是 能 够 使 用 任 何 文 本 编 辑 器 读 写的 纯 文 本 , 用 户 即 使
图1 界面生成流程图
图2 XML参数装备(a)
图3 XML参数装备(b)
没有配套的可视化界面修改东西,也能够用一个简略的文本 修改软件完成对用户界面的装备;
3)XML标准中供给了对多语种的支撑,包含UTF-7、
UTF-8、UNI C0、GB23I2(简体中文)、BIG5(繁体中文) 等,这一特色使得XML 十分有利于存储和办理多言语用户 界面,能够很简略地完成软件的国际化和本地化;
4)XML能够运用于Windows、Linux、Unix、Mac等多 种 平 台 上 , 因 此 使 用 X M L 存 储界面信息,可完成跨渠道异
构运用程序之间的界面信息共 享;
5) XML的树状存储结构
便于完成依据语义的智能数据 查找,当软件界面数据量十分 大时,能够完成对界面信息的 快速查询和数据提取。
2.2 pugixml库介绍
图4 XML生成界面
pugi xml是一个XML操作库, 能解析XML内容, 它有 以下几点优势: 轻量, 只要三个文件; 支撑Unicode; 支 持X PATH解析; 速度快, 仅比R apid Xml慢一些; 跨渠道
(windows/linux);面向目标。
和其他XML库比较,pugixml优势清楚明了:
1)支撑字符集:tinyxml不支撑unicode(这是很多人不 乐意用tinyxml的原因之一),pugixml支撑UTF8 encoding、 Little-endian UTF16、Big-endian UTF16、UTF16 with native en d i an n es s 、 L i tt l e – en d i anU T F 3 2 、 Big- en d i an U T F 3 2 和 UTF32with native endianness。
2)操作XML文件的功用如表1所示(105页)。
3)运用的方便性。尽管pugixml和tinyxml都是依据面向 目标的,但pugixml的运用方便性远胜tinyxml。比方在查找 节点的特色值方面,Tinyxml需求调用者从根节点开始查找
(运用TiXmlElement类),然后递归找下去,找到后取出属 性值。而pugixml运用一个child函数封装了查找节点功用。(未完待续)