国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

金山衛(wèi)士界面源碼解讀及界面庫(kù)分離(3)

發(fā)布時(shí)間:2011-3-29 22:01    發(fā)布者:1770309616
金山衛(wèi)士界面源碼解讀及界面庫(kù)分離.pdf (239.76 KB)


通過(guò)前面兩篇文章的介紹,相信同學(xué)們對(duì)Kui這個(gè)庫(kù)的大體使用方法有了了解.
接下來(lái),我們就可以開(kāi)始實(shí)際演練了,下面我們將展現(xiàn)基礎(chǔ)控件的使用.
不過(guò)在這里要提一下此庫(kù)的一些沒(méi)完善的地方,因?yàn)檎搲腥颂岬搅?
一.沒(méi)有鍵盤(pán)接口,所以對(duì)Tab等按鍵無(wú)法反應(yīng).
二.還沒(méi)有換膚功能
三.xml必須手工編輯.
四.其實(shí)也是很多人提到的,就是代碼缺乏注釋,很多時(shí)候還可能發(fā)現(xiàn)代碼有些零亂,的確不應(yīng)該是金山這種頂級(jí)軟件公司所應(yīng)該展現(xiàn)的樣子.
不過(guò)這方面金山已經(jīng)作了相關(guān)說(shuō)明.代碼需要和商業(yè)代碼相分離,很多做法可能是暫時(shí)的.
對(duì)于這些弊端,可以自己來(lái)完善,我如果一直對(duì)它保持著興趣,相信也會(huì)去完善它的.
好了,下面我們將以第一篇文章的代碼Sample2為例子,講解Kui庫(kù)中的基礎(chǔ)控件.Kui庫(kù)的基礎(chǔ)控件并不多,只有簡(jiǎn)單的幾個(gè)基礎(chǔ)控件.不過(guò)相信對(duì)于大部分的需求來(lái)說(shuō)還是可以應(yīng)付的.畢竟它是針對(duì)金山衛(wèi)士進(jìn)行開(kāi)發(fā)的,而金山衛(wèi)士是作為商業(yè)級(jí)來(lái)應(yīng)用的.一般的功能性軟件還是夠用了.
而且以后將講解對(duì)庫(kù)的擴(kuò)充方法,那樣針對(duì)你的應(yīng)用來(lái),在Kui框架下編寫(xiě)特定控件也是很簡(jiǎn)單的.
窗體布局
在上一篇文章金山衛(wèi)士界面源碼解讀及界面庫(kù)分離(2) 中,我們說(shuō)過(guò)Kui窗體是分為上中下三部分的,
分別為Header,Body,Footer
這三部分內(nèi)容是通過(guò)xml來(lái)定義的.其實(shí)Kui所有的資源都是通過(guò)xml來(lái)定義的.他們分別如下所示:
xmls.xml 定義其他需要使用到的xml
images.xml 定義圖片
strings.xml 定義文本
通過(guò)定義之后就可以通過(guò)ID來(lái)使用資源了.
我們將需要使用的所有圖片都在images.xml中定義.
如果你需要程序支持多語(yǔ)言,可以在strings.xml里定義所有需要展現(xiàn)的文本.那樣需要多語(yǔ)言支持只需要提供另一個(gè)xml,而不需要修改程序代碼
然后我們?cè)趚mls.xml里面定義了三個(gè)文件,分別是
def_skin.xml  皮膚定義
def_style.xml 樣式定義
dlg_main.xml 窗口定義
他們分別是皮膚,樣式和主窗口.
主窗口結(jié)構(gòu)就是定義在dlg_main.xml
所以我們需要定義窗體時(shí)主要是通過(guò)主dlg_main.xml來(lái)布局窗口中的元素.
我們看看Sample2中如何定義出一個(gè)窗口.
界面如下:

dlg_main.xml代碼如下:
view plaincopy to clipboardprint?
01.  
02.   
  
03.          
04.        樣例程序3  
05.          
06.          
07.          
08.   
  
09.      
10.          
11.        信息顯示:  
12.        Ready  
13.        
  
14.        復(fù)選框1  
15.        復(fù)選框2  
16.        
  
17.        Radio按鈕1  
18.        Radio按鈕2  
19.        Radio按鈕3  
20.           
21.          
22.          
23.          
24.  
25.          
26.        Loading...  
27.      
28.   
  
29.   
  
30.
  


  
  樣例程序3
  
  
  


  
  信息顯示:
  Ready
  

  復(fù)選框1
  復(fù)選框2
  

  Radio按鈕1
  Radio按鈕2
  Radio按鈕3
  
  
  
  
  
  Loading...





首先所有窗口必須以layer為根節(jié)點(diǎn).并設(shè)置其屬性與窗口屬性對(duì)應(yīng).關(guān)于具體的屬性解釋,我會(huì)在以后以文檔方式提供.
簡(jiǎn)單說(shuō)明如下:
width是窗體寬度,可用full定義自動(dòng)填滿寬度,height是高度可用full自動(dòng)填滿高度,
appwin表示是一個(gè)程序窗口,那將使其顯示于任務(wù)欄.
然后是前面所說(shuō)的上中下三部分的定義.
他們分別以header,mainbody,footer為節(jié)點(diǎn),但他們實(shí)際都是屬于KUI里面的KuiDialog虛擬窗體.是作為子控件的容器的.
這三部分不是都需要的,你可以只取三個(gè)中的部分,假如你不需要footer,可以直接去掉.但一般來(lái)說(shuō)標(biāo)題欄還是要的,否則很難拖動(dòng)窗口了.
header說(shuō)明:
header里面包含的子控件有一個(gè)圖標(biāo),三個(gè)典型的系統(tǒng)按鈕,以及一個(gè)顯示標(biāo)題的文本控件。
他們分別以節(jié)點(diǎn)icon,imgbtn,text節(jié)點(diǎn)定義。同樣他們的具體說(shuō)明將以后用文檔提供。
簡(jiǎn)單說(shuō)明如下:
pos   是指出控件位置,是所有控件的共有屬性。
icon   以src指明了圖標(biāo)位置。
text的class指明了所使用的樣式。
imgbtn的id是比較重要的,點(diǎn)擊按鈕后將id以通知方式發(fā)送給主窗口,主窗口就可以根據(jù)按鈕作相應(yīng)動(dòng)作。樣式和皮膚則指明了按鈕外觀
其中按鈕的通知可在程序代碼里如此接收.
view plaincopy to clipboardprint?
01.KUI_NOTIFY_MAP(IDC_RICHVIEW_WIN)   
02.       KUI_NOTIFY_ID_COMMAND(60001, OnBkBtnClose)   
03.       KUI_NOTIFY_ID_COMMAND(60002, OnBkBtnMax)   
04.       KUI_NOTIFY_ID_COMMAND(60003, OnBkBtnMin)   
05.   KUI_NOTIFY_MAP_END()  
KUI_NOTIFY_MAP(IDC_RICHVIEW_WIN)
        KUI_NOTIFY_ID_COMMAND(60001, OnBkBtnClose)
        KUI_NOTIFY_ID_COMMAND(60002, OnBkBtnMax)
        KUI_NOTIFY_ID_COMMAND(60003, OnBkBtnMin)
    KUI_NOTIFY_MAP_END()

其中IDC_RICHVIEW_WIN是要接收的控件的ID,一般固定設(shè)置成該值就可以了.60001對(duì)應(yīng)著xml中關(guān)閉按鈕的id,這樣就可以將通知消息映射到了OnBkBtnClose函數(shù)當(dāng)中.用戶再編寫(xiě)該函數(shù)實(shí)現(xiàn)就可以了.跟MFC挺相似的.
body的說(shuō)明:
body里面我們展現(xiàn)了普通按鈕,靜態(tài)文本,分割線,check按鈕,radio按鈕,進(jìn)度條,楨動(dòng)畫(huà)控件
普通按鈕同樣以id通知,樣式是normalbtn,
需要注意的是普通按鈕雖然看起來(lái)比windows原有按鈕漂亮,但他是直接以不同顏色畫(huà)出來(lái)的,沒(méi)有用到貼圖。
線控件以節(jié)點(diǎn)[ hr ]表示,直接在界面上畫(huà)一條橫線。
check控件和radio控件是直接用window的主題來(lái)畫(huà)的,所以可以由程序員改變的地方不多。不過(guò)一般程序都是以這種外觀展現(xiàn)的。
progress以min和max屬性定義了值范圍,當(dāng)前值以value表示。showpercent指明是否要顯示百分比文字
img是一系列的小圖片,由subwidth指定每幅圖片的寬度,通過(guò)sub屬性來(lái)指定當(dāng)前需要顯示第幾幅圖片?捎糜诘潉(dòng)畫(huà)或狀態(tài)圖標(biāo)顯示。
footer
一般只是狀態(tài)顯示,沒(méi)什么地方需要特別說(shuō)明。
以上文件通過(guò)打包成zip文件,并命名為sample2.kui,然后用資源形式隨程序一起提供。資源代碼如下
kuires.dat    SKIN     "res\\sample1.kui"
可以看到其實(shí)Kui提供的基礎(chǔ)控件還是比較少的。不過(guò)這對(duì)于一般的應(yīng)用還是可以的。
依據(jù)二八原則,應(yīng)該是百分之八十的程序都是用這些基礎(chǔ)控件的。所以各位同學(xué)將就著用吧。
金山衛(wèi)士就是通過(guò)這些基礎(chǔ)控件搭配幾個(gè)高級(jí)控件完成了整個(gè)金山衛(wèi)士的構(gòu)建。
本文地址:http://m.qingdxww.cn/thread-60404-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開(kāi)發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開(kāi)發(fā)培訓(xùn)教程
  • 集成高級(jí)模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区免费在线视频 | 国产网站精品 | 欧美一级日韩一级 | 99在线视频网站 | 欧美人与动交片免费播放 | 91传媒黄色app免费下载 | 日本免费精品视频 | 爱视频福利网 | 999在线视频 | 色视频在线免费看 | 99热在线免费观看 | 国产伦精品一区三区视频 | 久草网址| 在线不卡一区二区 | 久久久免费精品视频 | 在线天堂中文 | 四库国产精品成人 | 欧美啄木乌成人系列影片 | 国产一级二级三级在线观看 | 久久99久久99小草精品免视看 | 97在线观免费视频观看 | 国内国外精品一区二区 | 亚洲香蕉视频 | 在线免费色视频 | 国产精品亚洲精品 | 国产欧美日韩亚洲 | 四虎影视成人永久在线观看 | 亚洲成人动漫在线 | 青青草操| 国产成人亚洲精品乱码在线观看 | 国产麻豆精品在线观看 | 国产精品自在在线香蕉 | 青青青青操| 国产97公开成人免费视频 | 亚洲国产日韩在线人高清不卡 | 九九re热| 一二三四免费高清视频社区 | 国产伦精品一区二区三区免费 | 97视频在线观看免费 | 亚洲欧美国产日本 | 久久99热狠狠色精品一区 |