新聞中心

EEPW首頁 > 汽車電子 > 設(shè)計應(yīng)用 > QT平臺下基于XML的界面設(shè)計與管理(上)

QT平臺下基于XML的界面設(shè)計與管理(上)

作者:周珊珊 劉高高 時間:2017-02-24 來源:電子產(chǎn)品世界 收藏

1  引言
     用戶界面是軟件系統(tǒng)的重要組成部分,是對軟件的人 機交互、操作邏輯、界面美觀的整體設(shè)計,是系統(tǒng)和用戶之 間進(jìn)行交互和信息交換的媒介,它實現(xiàn)信息的內(nèi)部形式與人 類可以接受的形式之間的轉(zhuǎn)換。是一個完整的應(yīng)用程序 開發(fā)框架,它包括一個類庫和一些跨平臺、國際化的工具, 以其強大的功能、良好的可移植性逐漸成為一種被廣泛使 用的GUI系統(tǒng),它提供給應(yīng)用程序開發(fā)者建立藝術(shù)級的圖形 用戶界面所需的所有功能。本文所描述軟件是在平臺下 開發(fā)實現(xiàn)的,為了提高軟件用戶界面的擴展性和界面開發(fā)的 效率,使軟件的最終用戶也可以通過工具對界面進(jìn)行修改和 定制,本文提出了基于可擴展標(biāo)記語言(eXtensible Markup Language,)的用戶界面方案,并開發(fā)出相應(yīng)的界面管 理系統(tǒng)。

2 界面生成理論基礎(chǔ)
2.1 界面生成技術(shù)
是一種在互聯(lián)網(wǎng)上保存和傳遞信息的語言,以其 結(jié)構(gòu)化、可擴展、靈活等特點廣泛流行。XML有著極其靈 活的語法,能夠描述各種類型的信息。平臺無關(guān)性使其成為 跨平臺數(shù)據(jù)表示和交換的標(biāo)準(zhǔn)。XML的文檔結(jié)構(gòu)特別適合 存儲界面模版的樹形結(jié)構(gòu),各種元素、屬性、注釋等構(gòu)成了 XML文件的基本組件,XML文檔基本上可以限定為一棵特 殊的文本化的樹,因此以XML文檔結(jié)構(gòu)樹的形式容易實現(xiàn) 界面模版的可視化處理?;赬ML的界面設(shè)計生成技術(shù)涉 及到界面所描述的XML文檔、界面組件事件監(jiān)聽類、界面 生成器、編程語言的組件庫和界面定制工具。本文提供的軟件界面是在平臺下構(gòu)建的,要在此環(huán)境下利用XML技術(shù)生成一個界面,首先要提供界面描述XML文檔和界面組件事件監(jiān)聽類。界面描述XML文檔使用XML描述界面上所有 組件及其屬性,包括名稱、大小、位置、布局以及與之相對 應(yīng)的事件監(jiān)聽類等。界面描述XML文檔可以用XML編輯器 來編寫,也可以從其他的數(shù)據(jù)源自動生成。界面組件事件監(jiān) 聽類負(fù)責(zé)監(jiān)聽并且處理對應(yīng)界面描述XML文檔中組件的事 件,比如按鈕事件、點擊事件等,由組件事件引發(fā)的一系 列操作都由該類來實現(xiàn)。在界面描述XML文檔的解析過程 中,界面生成器會根據(jù)文檔中的組件事件屬性值加載進(jìn)來, 按照觸發(fā)執(zhí)行其定義的操作。
具體操作為,在軟件啟動時,先讀取界面信息,然后 根據(jù)界面信息生成圖形用戶界面。XML是一門新興的、面 向Internet應(yīng)用的標(biāo)記語言,它是由W3C(World Wide Web Consortium)組織在1998年制定的一種通用語言規(guī)范。XML 既 是 標(biāo) 準(zhǔn) 通 用 標(biāo) 記 語 言 ( S G M L ) 的 一 個 子 集 , 也 是 對 SGML的一種改良。使用XML作為界面配置文件的原因主要 基于以下幾點:
1 ) X M L 語 法 嚴(yán) 格 , 格 式 靈 活 , 具 有 良 好 的 擴 展 性 和 自 描 述 性 , 所 描 述 的 形 式 與 內(nèi) 容 相 分 離 , 便 于 對 界 面 元 素 的 描 述 進(jìn) 行擴展;
2)XML存儲的格式 簡 單 、 是 能 夠 使 用 任 何 文 本 編 輯 器 讀 寫的 純 文 本 , 用 戶 即 使

本文引用地址:http://butianyuan.cn/article/201702/344431.htm

圖1  界面生成流程圖

圖2  XML參數(shù)配置(a)

圖3  XML參數(shù)配置(b)
沒有配套的可視化界面編輯工具,也可以用一個簡單的文本 編輯軟件實現(xiàn)對用戶界面的配置;
3)XML規(guī)范中提供了對多語種的支持,包括UTF-7、
UTF-8、UNI C0、GB23I2(簡體中文)、BIG5(繁體中文) 等,這一特點使得XML 非常有利于存儲和管理多語言用戶 界面,可以很容易地實現(xiàn)軟件的國際化和本地化;
4)XML可以應(yīng)用于Windows、Linux、Unix、Mac等多 種 平 臺 上 , 因 此 使 用 X M L 存 儲界面信息,可實現(xiàn)跨平臺異
構(gòu)應(yīng)用程序之間的界面信息共 享;
5) XML的樹狀存儲結(jié)構(gòu)
便于實現(xiàn)基于語義的智能數(shù)據(jù) 搜索,當(dāng)軟件界面數(shù)據(jù)量非常 大時,可以實現(xiàn)對界面信息的 快速查詢和數(shù)據(jù)提取。
2.2 pugixml庫介紹

圖4   XML生成界面
pugi xml是一個XML操作庫, 能解析XML內(nèi)容, 它有 以下幾點優(yōu)勢: 輕量, 只有三個文件; 支持Unicode; 支 持X PATH解析; 速度快, 僅比R apid Xml慢一些; 跨平臺
(windows/linux);面向?qū)ο蟆?br />和其他XML庫相比,pugixml優(yōu)勢顯而易見:
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的使用方便性遠(yuǎn)勝tinyxml。比如在查找 節(jié)點的屬性值方面,Tinyxml需要調(diào)用者從根節(jié)點開始查找
(使用TiXmlElement類),然后遞歸找下去,找到后取出屬 性值。而pugixml使用一個child函數(shù)封裝了查找節(jié)點功能。(未完待續(xù))



關(guān)鍵詞: QT XML

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉