一種軟件界面快速生成方法和系統的制作方法
【技術領域】
[0001 ]本發明屬于計算機軟件設計領域,具體來說,涉及一種軟件界面快速生成方法和 系統。
【背景技術】
[0002] 內網安全控制端軟件的主要功能就是,向客戶機下發策略和數據統計。
[0003] 策略分為兩種:
[0004] 1.無參策略:它包括策略的名稱,執行周期(這條策略在什么時間段內執行),是否 支持離線(客戶機離線后策略是否還要執行)和是否啟用四個要素
[0005] 2.有參策略:它包括策略的名稱,執行周期,是否支持離線,是否啟和策略參數,
[0006] 例如,網站黑白名單這條策略中,策略參數中就包含網址的黑名單或者白名單。
[0007] "無參策略"界面顯示的元素都是一樣的,"有參策略"各有不同但是都包含"無參 策略"界面的顯示元素。
[0008] 為了用戶使用方便,大家的都會把這些界面按類別劃分,例如"禁止共享","禁止 安裝程序"和"禁止添加用戶"這三條策略界面歸為"終端安全"類別,即我們也可以將"終端 安全"看作是一個功能模塊,這個功能模塊下包含"禁止共享","禁止安裝程序"和"禁止添 加用戶"這三個子功能。
[0009] 客戶的要求總是多種多樣的他們會根據他們具體的實際要求來使用這些功能,也 會提出一些改進要求,例如有些功能模塊下的子功能他們不需要,就要求不要提供顯示;又 例如某些功能的使用頻率的不同,他們希望調整下界面的顯示順序來方便他們的使用。以 上這兩個列子可以說是客戶經常會提出的要求。現在大家普遍的做法是,如果有客戶提出 此類要求就為此客戶制作一個"轉本"以滿足他們對界面的特殊要求,一般的流程就是,客 戶提要求,市場部反饋,然后是研發制作相應"專版",然后是測試,最后是給客戶提供"專 版"。
[0010] 以往界面開發方式,雖然代碼清晰,針對性強,可以隨意編寫有針對性的,不同樣 式的界面,但是在大型軟件開發上面還是有很多缺點的:
[0011] 1.開發工作量大,每一個界面都要從頭開始編寫,包括界面元素的編寫和布局,即 使這些界面的外觀都很類似。
[0012] 2.代碼維護成本高,例如,如果要隱藏某個界面或者改變界面的顯示順序,也要修 改每一個界面的代碼文件,如果客戶需要添加一個新功能,則相關的界面都差不多需要從 頭開始編寫。工作量可謂繁重。
[0013] 3. "專版"程序數量龐大,最終難以維護。
【發明內容】
[0014]本發明所要解決的技術問題是用最少的代碼來快速生成策略界面同時還要滿足 組上面提到的用戶對界面顯示的特殊要求。
[0015] 本發明解決上述技術問題所采取的技術方案如下:
[0016] -種軟件界面快速生成方法,步驟包括:
[0017] 步驟1:將UI界面模塊化劃分,不同的UI界面由相應的管理模塊(module widget) 來創建和管理,其中,子功能管理模塊(feature widget)提供了每個UI界面都必須有的基 本功能接口,管理模塊(module widget)負責創建并按照指定方式顯示子功能管理模塊 (feature widget);
[0018] 步驟2:根據軟件界面形成對應的模塊與子功能模塊配置文件,其遵循JS0N的標準 格式,其包括功能模塊和子功能模塊的描述信息;
[0019] 其中,功能模塊的描述信息包括模塊界面在模塊序列中的顯示順序(Order)字段、 模塊界面顯示描述(Desc)字段和該模塊下子功能界面描述信息(Feature)字段,子功能模 塊的描述信息包括子功能界面在管理模塊下的所有子功能界面序列中的顯示順序(Order) 字段和子功能界面的界面描述信息(Feature)字段;
[0020] 步驟3:讀取以上模塊與子功能配置文件,根據以上配置文件,最終實現軟件界面 的繪制。
[0021] 優選的是,所述步驟3中,具體包括以下子步驟:
[0022] 31)根據以上模塊與子功能配置文件,生成管理模塊界面結構體和子功能界面結 構體實例,并緩存;
[0023] 32)為每一個管理模塊結構體實例和創建對應的一個QModWidget窗口類實例,在 此將相應的管理模塊界面結構體(CMod)傳入;
[0024]其中,QModWidget實例在初始化的時候,為每個一個本模塊下的子功能界面實例 創建并初始化對應的一個QFeatureWidget窗口類實例或者繼承自QFeatureWidget的窗口 類實例,同樣要將相應的子功能界面結構體(CFeature)傳入,其中,如果QModWidget實例下 有多個QFeatureWidget窗口類實例,QModWidget創建一個Tab頁控件來負責管理這些 QFeatureWidget窗口的切換,并且顯示順序與子功能界面結構體(CFeature)的順序相對 應,其由以上模塊與子功能配置文件中的子功能模塊的描述信息所限定。
[0025]優選的是,在步驟32)之后,還包括:
[0026] 33)生成一個工具欄QModToolBar類實例,用于切換不同管理模塊,其中,工具欄中 的每個按鈕顯示模塊名稱以及相應的顯示順序,每個按鈕顯示模塊名稱以及相應的顯示順 序由以上模塊與子功能配置文件中的功能模塊的描述信息所限定。
[0027]優選的是,在步驟33)之后,還包括:
[0028] 34)生成一 QModContainer窗口類實例,其負責管理所有的QModWidget實例,其中, 默認顯示序號最小的管理模塊下序號也同樣是最小的子功能界面,并且,QModContainer與 QModToolBar相通信,在工具欄切換模塊的時候,QModToolBar通知QModContainer窗口類實 例,由它來完成具體的切換動作。
[0029] 優選的是,QFeatureWidget窗口類實例中提供了onActivate和onLeave兩個虛函 數,它的每一個子功能窗口類都要重載這兩個函數,當窗口切換的時候框架會自動調動子 功能窗口的這兩個函數,由此實現模塊或者子功能界面的切換。
[0030] 優選的是,通過刪除模塊與子功能配置文件中的界面描述信息(Feature)字段實 現管理模塊和子功能管理模塊的隱藏。
[0031]優選的是,通過更改模塊與子功能配置文件中的顯示順序(Order)字段以改變模 塊之間的顯示順序。
[0032] 一種軟件界面快速生成系統,包括:
[0033]模塊設置單元,用于將UI界面模塊化劃分,不同的UI界面由相應的管理模塊 (module widget)來創建和管理,其中,子功能管理模塊(feature widget)提供了每個UI界 面都必須有的基本功能接口,管理模塊(module widget)負責創建并按照指定方式顯示子 功能管理模塊(feature widget);
[0034] 配置文件設置單元,用于根據軟件界面形成對應的模塊與子功能模塊配置文件, 其遵循JS0N的標準格式,其包括功能模塊和子功能模塊的描述信息;
[0035] 其中,功能模塊的描述信息包括模塊界面在模塊序列中的顯示順序(Order)字段、 模塊界面顯示描述(Desc)字段和該模塊下子功能界面描述信息(Feature)字段,子功能模 塊的描述信息包括子功能界面在管理模塊下的所有子功能界面序列中的顯示順序(Order) 字段和子功能界面的界面描述信息(Feature)字段;
[0036] 繪制單元,用于讀取以上模塊與子功能配置文件,根據以上配置文件,最終實現軟 件界面的繪制。
[0037] 本發明采取了上述方案以后,不再需要為每個界面編寫代碼文件,只要根據JS0N 配置文件自動生成UI界面并按照指定的方式顯示出來,快速高效,代碼維護量少。
[0038] 本發明的其它特征和優點將在隨后的說明書中闡述,并且,部分地從說明書中變 得顯而易見,或者通過實施本發明而了解。本發明的目的和其他優點可通過在所寫的說明 書、權利要求書、以及附圖中所特別指出的結構來實現和獲得。
【附圖說明】
[0039] 下面結合附圖對本發明進行詳細的描述,以使得本發明的上述優點更加明確。其 中,
[0040] 圖1是本發明軟件界面快速生成方法的流程示意圖;
[0041 ]圖2是本發明軟件界面快速生成方法的實施例的示意圖;
[0042]圖3是本發明軟件界面快速生成系統的結構示意圖。
【具體實施方式】
[0043]以下將結合附圖及實施例來詳細說明本發明的實施方式,借此對本發明如何應用 技術手段來解決技術問題,并達成技術效果的實現過程能充分理解并據以實施。需要說明 的是,只要不構成沖突,本發明中的各個實施例以及各實施例中的各個特征可以相互結合, 所形成的技術方案均在本發明的保護范圍之內。
[0044] 以下對本發明涉及的英文縮寫進行解釋如下:
[0045] QT: 1991年由奇趣科技開發的跨平臺C++圖形用戶界面應用程序開發框架。
[0046] Json:JS0N(JavaScript Object Notation)是一種輕量級的數據交換格式。它基 于ECMAScript的一個子集。JS0N采用完全