新聞中心

        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.104case.com/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

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 城步| 个旧市| 东宁县| 余干县| 江永县| 宁晋县| 道孚县| 蒙自县| 兴安盟| 禹州市| 仁化县| 崇左市| 宁远县| 弥渡县| 青神县| 永仁县| 慈利县| 甘南县| 静海县| 长白| 沅陵县| 横峰县| 科技| 乐山市| 保定市| 象州县| 井陉县| 萨迦县| 永安市| 青河县| 贵阳市| 平泉县| 台山市| 普定县| 杨浦区| 柳江县| 儋州市| 重庆市| 凤城市| 滨州市| 徐闻县|