專利名稱:應用程序的圖形界面開發(fā)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種界面開發(fā)方法,尤其涉及一種應用程序的圖形界面的開發(fā)方法。
背景技術(shù):
圖形用戶界面(Graphics User Interface),簡稱GUI,使用圖形的方式,借助菜單、按鈕等標準界面元素和鼠標操作,幫助用戶方便地向計算機系統(tǒng)發(fā)出指令,激活操作,并將系統(tǒng)運行的結(jié)果同樣以圖形方式顯示給用戶。圖形用戶界面畫面生動、操作簡單,省去了使用字符界面時用戶必須記憶各種命令的麻煩,已經(jīng)成為目前幾乎所有應用軟件的既定標準。
圖形界面已經(jīng)是現(xiàn)代軟件中人機交互的主要手段。公知的對應用程序圖形界面的開發(fā)中,對于圖形界面開發(fā)都沒有一個規(guī)范而通用的方法,通常開發(fā)人員都需要寫出相當冗長的程序代碼。以挪威的Troll Tech公司開發(fā)的Qt庫為例,在其基礎(chǔ)上生成一個圖案按鍵,所需基本操作步驟包括請參見圖1,首先,建立按鍵顯示所需的窗體(步驟111);然后將所要顯示的圖片讀入內(nèi)存(步驟112);根據(jù)按鍵當前的狀態(tài)顯示所需的圖片(步驟113);當有用戶操作時計算出按鍵的新狀態(tài)(步驟114);根據(jù)按鍵此時的新狀態(tài)顯示所需的圖片(步驟115)。
應用上述方法來開發(fā)應用程序的圖形界面,對于復雜的圖形化對象,所要做的工作的復雜程度可想而知,冗長的程序代碼使應用程序本身也占用了大部分的存儲空間。并且應用程序界面的對象大小及位置,都是在設計時就已經(jīng)完成的,界面顯示圖案的整體風格也是固定而且單一的,不能根據(jù)用戶的需要進行變換。當應用程序運行在操作系統(tǒng)的各種不同分辨率時,其顯示效果也不能隨著分辨率的改變而變化,當用戶的操作環(huán)境和習慣與設計環(huán)境有差別時,會嚴重的影響界面的外觀。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題為提供一種應用程序的圖形界面開發(fā)方法,使界面設計的靈活性大大增加,減少了應用程序本身所占的存儲容量,能夠適應操作系統(tǒng)的不同分辨率,在運行過程中還可以根據(jù)需要改變界面風格。
為實現(xiàn)上述目的,本發(fā)明提供一種應用程序的圖形界面開發(fā)方法,首先建立對象描述文件庫與資源描述文件庫;程序運行中創(chuàng)建一窗體,確定窗體對應的對象描述文件與資源描述文件;然后,根據(jù)資源描述文件中的圖形信息,將對應的圖形讀入內(nèi)存;再根據(jù)對象描述文件中的對象屬性,創(chuàng)建所有對象;計算所有對象的當前狀態(tài),并根據(jù)當前狀態(tài),確定其圖形內(nèi)容參數(shù);最后,根據(jù)圖形內(nèi)容參數(shù),調(diào)出相應的圖形,并將其顯示在指定位置上。
本發(fā)明所提供的應用程序圖形界面開發(fā)方法,使窗體界面設計的靈活性大大增加,減少了應用程序本身所占的存儲容量。還可以根據(jù)操作系統(tǒng)分辨率的不同而改變界面上所有對象的顯示位置與大小。應用此方法開發(fā)出來的圖形界面還可以改變界面整體風格,變更對象的個數(shù)與種類,改變對象的位置與大小、改變語言等,使應用程序的界面更具觀賞性和實用性。
為使本發(fā)明的目的、構(gòu)造特征及其功能有進一步的了解,配合附圖詳細說明如下
圖1是公知圖形界面開發(fā)方法的流程圖;圖2是本發(fā)明所提供的應用程序圖形界面開發(fā)方法流程圖;圖3是本發(fā)明中自適應分辨率的流程圖;及圖4是本發(fā)明中程序運行中換膚流程圖。
其中,附圖標記說明如下步驟111--建立按鍵顯示所需的窗體,步驟112--將所要顯示的圖片讀入內(nèi)存,步驟113--根據(jù)按鍵當前的狀態(tài)顯示所需圖片,步驟114--當有用戶操作時計算出按鍵的新狀態(tài),步驟115--根據(jù)按鍵此時的新狀態(tài)顯示所需圖片,步驟211--建立對象描述文件庫與資源描述文件庫,步驟212--創(chuàng)建一窗體,確定窗體對應的對象描述文件與資源描述文件,步驟213--根據(jù)資源描述文件中的圖形信息,將對應的圖形讀入內(nèi)存,步驟214--根據(jù)對象描述文件中的對象屬性,創(chuàng)建所有對象,步驟215--計算所有對象的當前狀態(tài),并根據(jù)當前狀態(tài),確定其圖形內(nèi)容參數(shù),步驟216--根據(jù)圖形內(nèi)容參數(shù),調(diào)出相應的圖形,并將其顯示在指定位置上,步驟311--檢測當前操作系統(tǒng)的分辨率,步驟312--初始化窗體的分辨率轉(zhuǎn)換系數(shù),步驟313--讀出窗體的指定分辨率,步驟314--計算指定分辨率與當前操作系統(tǒng)分辨率之間的轉(zhuǎn)換系數(shù),步驟315--根據(jù)轉(zhuǎn)換系數(shù),計算窗體內(nèi)對象的坐標值,步驟411--隱藏當前存在的所有窗體及所有對象,步驟412--對應當前窗體,找到目的皮膚號所指定的對象描述文件與資源描述文件,步驟413--根據(jù)目的皮膚號的對象描述文件更改現(xiàn)有對象屬性,步驟414--根據(jù)資源描述文件的圖形信息,將相應的圖形讀入內(nèi)存。
具體實施例方式
下面結(jié)合附圖對本發(fā)明進行詳細說明。
在應用程序開始運行之前,開發(fā)者通常需要對應用程序所顯示的圖形界面進行設計。本發(fā)明提供的應用程序圖形界面開發(fā)方法,請參見圖2。首先,建立對象描述文件庫與資源描述文件庫(步驟211);創(chuàng)建一窗體(Form),確定窗體對應的對象描述文件與資源描述文件(步驟212);然后根據(jù)資源描述文件中的圖形信息,將對應的圖形讀入內(nèi)存(步驟213);再根據(jù)對象描述文件中的對象屬性,創(chuàng)建所有對象(步驟214);計算所有對象的當前狀態(tài),并根據(jù)當前狀態(tài),確定其圖形內(nèi)容參數(shù)(步驟215);最后,根據(jù)圖形內(nèi)容參數(shù),調(diào)出相應的圖形,并將其顯示在指定位置上(步驟216)。
為了使圖形界面全面支持圖形化,本實施例將實現(xiàn)過程封裝為以下幾個程序類圖形資源類(CPResImage)該類代表每一個實際的圖形文件,該類通過指定文件名,將圖形文件讀入內(nèi)存并根據(jù)顯示參數(shù)將其顯示在指定位置。
對象媒體類(CPMediaList)該類是對象與資源的連接,它記錄著對象中對所需顯示圖形的需求。
基本對象類(CPObject)是界面中每一個可以作為顯示的基本單位。
基本窗體類(CPForm)是一組基本對象組成的界面,每一個窗體對應著一個唯一的對象描述文件與資源描述文件。
完成了對程序類的封裝后,應用程序設計者還要創(chuàng)建對界面進行描述的配置文件。配置文件包括由對象描述文件組成的對象描述文件庫以及由資源描述文件組成的資源描述文件庫。其中,對象是圖形用戶界面中每一個可作為顯示的基本單位,它里面不再包含其它成分,其作用是完成與用戶的一次交互,包括接受用戶的一個命令,接受用戶的一個文本輸入,向用戶顯示一段文本或一個圖形等。對象描述文件系為描述圖形界面中所有對象的屬性,如對象的顯示位置、顯示大小、所顯示圖案的內(nèi)容等。資源描述文件是描述圖形界面中所有用到的圖形文件。
當應用程序需要創(chuàng)建一窗體時,根據(jù)窗體的名稱找出相應的資源描述文件與對象描述文件,資源描述文件中列出了本窗體所顯示的圖形信息。從資源描述文件中取得應用程序界面要用到的所有的圖形文件的文件名,并將其編號、分組后讀入內(nèi)存。對象描述文件中描述了本窗體的對象屬性。根據(jù)相應的對象描述文件中記錄的對象屬性就可以創(chuàng)建所有對象。對象描述文件與資源描述文件是通過媒體類連接的,媒體類記錄著對象中所需顯示圖形的需求。當對某一對象進行刷新時,首先檢查該對象是否有媒體類,如果對象內(nèi)沒有媒體類,說明對象沒有需要顯示的內(nèi)容,則退出刷新處理。如果對象有媒體類,則根據(jù)對象當前的狀態(tài)計算出所需顯示的圖形與媒體對應的序號,將媒體序號、對象顯示設備、圖形文件編號、顯示的源區(qū)域與目的區(qū)域等,作為圖形內(nèi)容參數(shù)交給媒體類處理,媒體類經(jīng)過計算將傳入的圖形內(nèi)容參數(shù)變更為圖形資源類所需的參數(shù),并交其處理。圖形資源類按指定的參數(shù)將圖形顯示在指定設備上。最后,關(guān)閉窗體,釋放圖形資源。
根據(jù)本發(fā)明所提供的方法,可自適應分辨率。請參見圖3,在程序開始運行時,首先檢測當前操作系統(tǒng)的分辨率(步驟311);初始化窗體的分辨率轉(zhuǎn)換系數(shù)(步驟312);讀出窗體的指定分辨率(步驟313);計算指定分辨率與當前操作系統(tǒng)的分辨率之間的轉(zhuǎn)換系數(shù)(步驟314);根據(jù)轉(zhuǎn)換系數(shù),計算窗體內(nèi)對象的坐標值(步驟315)。
在上述過程中,檢測當前操作系統(tǒng)的顯示分辨率,并計為ResolutionX與ResolutionY。創(chuàng)建某一窗體時,初始化窗體分辨率系數(shù)FactorX與Factory分別為1,然后讀出窗體的指定分辨率,計算指定分辨率與當前分辨率之間的轉(zhuǎn)換系數(shù),具體做法是
讀出窗體的指定分辨率FormWidth與FormHeight,則,窗體的分辨率轉(zhuǎn)換系數(shù)為FactorX=ResolutionX/FormWidthFactory=ResolutionY/FormHeight如果窗體無指定分辨率,則FormWidth與FormHeight分別等于當前操作系統(tǒng)的顯示分辨率ResolutionX與ResolutionY。在創(chuàng)建窗體中的對象時,將每一個對象的顯示坐標經(jīng)過分辨率轉(zhuǎn)換系數(shù)重新計算,再將對象按照轉(zhuǎn)換后的新的坐標顯示出來。
別具一格的程序外觀足以影響用戶的選擇。擁有友好而富有個性的用戶界面的軟件,又往往具有更強的功能。本發(fā)明提供的圖形界面開發(fā)方法,還可以實現(xiàn)在應用程序運行時換膚。換膚也就是使界面能夠改變顯示風格、語言版本等。上述對所有的圖形文件的文件進行編號、分組就是為了使本方法可以在應用程序運行時進行換膚。請參見圖4,圖4是本發(fā)明中程序運行中換膚流程圖。首先,隱藏當前存在的所有窗體及所有對象(步驟411);對應當前窗體,找到目的皮膚號所指定的對象描述文件與資源描述文件(步驟412);根據(jù)目的皮膚號的對象描述文件更改現(xiàn)有對象的屬性(步驟413);根據(jù)資源描述文件的圖形信息,將相應的圖形讀入內(nèi)存(步驟414)。
應用程序開發(fā)者需要按照類型將應用程序界面顯示用的圖形文件分為不同的組,每一組成為一套皮膚,對應著一個皮膚號。每一套皮膚代表了不同的顯示風格、語言版本等。應用程序激活前,可以指定此時所顯示的皮膚的序號,在運行過程中,可以通過輸入皮膚號的界面來隨時改變應用程序的界面。取出目的皮膚號所標示的資源描述文件與對象描述文件,如果當前皮膚號與目的皮膚號不同,則取出當前存在的一個窗體,隱藏窗體及其子對象,然后取出窗體內(nèi)的一個對象,如果對象存在于目的皮膚號對象描述文件內(nèi),則更改對象的屬性。如果對象不在目的皮膚號的描述文件內(nèi),則根據(jù)目的皮膚號的對象描述文件創(chuàng)建新的對象。直到完成了將窗體內(nèi)的所有對象都更改屬性后,經(jīng)過刷新處理,媒體類經(jīng)過計算將傳入的參數(shù)變更為圖形資源類所需參數(shù),調(diào)用相應的圖形顯示在指定位置上,即完成了整個界面的換膚工作。
以上所述,僅為本發(fā)明較佳實施例,但并非用來限定本發(fā)明的實施范圍;因此本發(fā)明所要求保護的權(quán)利要求范圍應以權(quán)利要求書所申請保護的權(quán)利要求為準。
權(quán)利要求
1.一種應用程序的圖形界面開發(fā)方法,其特征在于包括如下步驟建立對象描述文件庫與資源描述文件庫;創(chuàng)建一窗體,確定窗體對應的對象描述文件與資源描述文件;根據(jù)資源描述文件中的圖形信息,將對應的圖形讀入內(nèi)存;根據(jù)對象描述文件中的對象屬性,創(chuàng)建所有對象;計算所有對象的當前狀態(tài),并根據(jù)當前狀態(tài),確定其圖形內(nèi)容參數(shù);及根據(jù)圖形內(nèi)容參數(shù),調(diào)出相應的圖形,并將其顯示在指定位置上。
2.如權(quán)利要求1所述應用程序的圖形界面開發(fā)方法,其特征在于,確定窗體對應的對象描述文件與資源描述文件的步驟,是根據(jù)窗體名稱確定的。
3.如權(quán)利要求1所述應用程序的圖形界面開發(fā)方法,其特征在于,對象屬性包括對象的顯示位置、顯示大小、所顯示圖形內(nèi)容。
4.如權(quán)利要求1所述應用程序的圖形界面開發(fā)方法,其特征在于,計算所有對象的當前狀態(tài)的步驟,若某一對象不存在媒體類,則結(jié)束該對象的程序。
5.如權(quán)利要求1所述應用程序的圖形界面開發(fā)方法,其特征在于,圖形內(nèi)容參數(shù)包括圖形文件編號、圖形顯示目的區(qū)域、圖形顯示源區(qū)域。
6.如權(quán)利要求1所述應用程序的圖形界面開發(fā)方法,其特征在于,對象當前的狀態(tài),還包括自適應分辨率。
7.如權(quán)利要求6所述應用程序的圖形界面開發(fā)方法,其特征在于,自適應分辨率,還包括如下步驟檢測當前操作系統(tǒng)的分辨率;初始化窗體的分辨率轉(zhuǎn)換系數(shù);讀出窗體的指定分辨率;計算指定分辨率與當前操作系統(tǒng)的分辨率之間的轉(zhuǎn)換系數(shù);及根據(jù)轉(zhuǎn)換系數(shù),計算窗體內(nèi)對象的坐標值。
8.如權(quán)利要求7所述應用程序的圖形界面開發(fā)方法,其特征在于,分辨率轉(zhuǎn)換系數(shù)為當前操作系統(tǒng)分辨率除以窗體的指定分辨率。
9.如權(quán)利要求1所述應用程序的圖形界面開發(fā)方法,其特征在于,根據(jù)資源描述文件中的圖形信息,將所需的圖形讀入內(nèi)存的步驟,是從資源描述文件中取得所有圖形的文件名,并將其按一定順序進行編號、分組后讀入內(nèi)存。
10.如權(quán)利要求9所述應用程序的圖形界面開發(fā)方法,其特征在于,將所有圖形的文件名按一定順序進行編號、分組,在運行時換膚,每一組構(gòu)成一套皮膚,并對應一個皮膚號。
11.如權(quán)利要求10所述應用程序的圖形界面開發(fā)方法,其特征在于,運行時換膚,還包括如下步驟隱藏當前存在的所有窗體及所有對象;對應當前窗體,找到目的皮膚號所指定的對象描述文件與資源描述文件;根據(jù)目的皮膚號的對象描述文件更改現(xiàn)有對象的屬性;及根據(jù)資源描述文件的圖形信息,將相應的圖形讀入內(nèi)存。
12.如權(quán)利要求11所述應用程序的圖形界面開發(fā)方法,其特征在于,根據(jù)目的皮膚號的對象描述文件更改現(xiàn)有對象的屬性的步驟,還包括根據(jù)目的皮膚號的對象描述文件創(chuàng)建新的對象。
13.如權(quán)利要求9所述應用程序的圖形界面開發(fā)方法,其特征在于,每一套皮膚對應于應用程序的不同顯示風格、語言版本。
全文摘要
一種應用程序的圖形界面開發(fā)方法,根據(jù)所創(chuàng)建的窗體,確定其對應的對象描述文件與資源描述文件,并將對應的圖形讀入內(nèi)存,通過計算對象的當前狀態(tài),調(diào)出相應的圖形,并將其顯示在指定位置上,本發(fā)明減少了應用程序本身所占的存儲容量,還可以實現(xiàn)自適應分辨率,同時對圖形資源進行分組,達到運行時換膚目的。
文檔編號G06F17/21GK1517859SQ03100700
公開日2004年8月4日 申請日期2003年1月17日 優(yōu)先權(quán)日2003年1月17日
發(fā)明者劉文涵, 宋建福, 蔣煒 申請人:英業(yè)達股份有限公司