新聞中心

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

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

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

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

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

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

        圖1  界面生成流程圖

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

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

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



        關(guān)鍵詞: QT XML

        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 泾阳县| 博罗县| 金坛市| 中山市| 高唐县| 墨江| 临颍县| 奇台县| 和平区| 临泉县| 剑阁县| 唐海县| 南皮县| 余姚市| 沅江市| 中山市| 章丘市| 资源县| 百色市| 揭阳市| 许昌县| 彰武县| 紫云| 札达县| 公安县| 建湖县| 彰化县| 潮州市| 多伦县| 谢通门县| 老河口市| 巍山| 周口市| 黔东| 乐清市| 绵竹市| 河北省| 青浦区| 襄樊市| 靖西县| 米林县|