新闻中心

EEPW首页 > 汽车电子 > 设计应用 > QT平台下基于XML的界面设计与管理(上)

QT平台下基于XML的界面设计与管理(上)

作者:周珊珊 刘高高时间:2017-02-24来源:电子产品世界收藏

1  引言
     用户界面是软件系统的重要组成部分,是对软件的人 机交互、操作逻辑、界面美观的整体设计,是系统和用户之 间进行交互和信息交换的媒介,它实现信息的内部形式与人 类可以接受的形式之间的转换。是一个完整的应用程序 开发框架,它包括一个类库和一些跨平台、国际化的工具, 以其强大的功能、良好的可移植性逐渐成为一种被广泛使 用的GUI系统,它提供给应用程序开发者建立艺术级的图形 用户界面所需的所有功能。本文所描述软件是在平台下 开发实现的,为了提高软件用户界面的扩展性和界面开发的 效率,使软件的最终用户也可以通过工具对界面进行修改和 定制,本文提出了基于可扩展标记语言(eXtensible Markup Language,)的用户界面方案,并开发出相应的界面管 理系统。

2 界面生成理论基础
2.1 界面生成技术
是一种在互联网上保存和传递信息的语言,以其 结构化、可扩展、灵活等特点广泛流行。XML有着极其灵 活的语法,能够描述各种类型的信息。平台无关性使其成为 跨平台数据表示和交换的标准。XML的文档结构特别适合 存储界面模版的树形结构,各种元素、属性、注释等构成了 XML文件的基本组件,XML文档基本上可以限定为一棵特 殊的文本化的树,因此以XML文档结构树的形式容易实现 界面模版的可视化处理。基于XML的界面设计生成技术涉 及到界面所描述的XML文档、界面组件事件监听类、界面 生成器、编程语言的组件库和界面定制工具。本文提供的软件界面是在平台下构建的,要在此环境下利用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存储的格式 简 单 、 是 能 够 使 用 任 何 文 本 编 辑 器 读 写的 纯 文 本 , 用 户 即 使

本文引用地址:http://www.eepw.com.cn/article/201702/344431.htm

图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函数封装了查找节点功能。(未完待续)



关键词: QT XML

评论

技术专区

关闭