亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        WxWidgets框架應(yīng)用及其模塊化開發(fā)

        2009-07-07 09:11:58
        新媒體研究 2009年22期
        關(guān)鍵詞:類庫跨平臺控件

        張 羽

        [摘要]wxWidgets是簡單易用的跨平臺程序開發(fā)包,它可以在多種操作系統(tǒng)上開發(fā)圖形用戶界面。深入研究wxWidgets的類庫,包括它的基本特性、事件處理機(jī)制以及wxWidgets在軟件模塊化開發(fā)方面的應(yīng)用。

        [關(guān)鍵詞]wxWidgets跨平臺式模塊化圖形用戶界面

        中圖分類號:TP3文獻(xiàn)標(biāo)識碼:A文章編號:1671-7597(2009)1120067-01

        wxWidgets由Julian Smart于1992年在愛丁堡大學(xué)首先創(chuàng)建,隨著wxWidgets的不斷發(fā)展,適用的平臺也越來越多。現(xiàn)在的wxWidgets已經(jīng)不再是單純的跨平臺的GUI軟件開發(fā)包,而是一個可以支持多種操作系統(tǒng)平臺的能夠在多種語言中使用的跨平臺軟件開發(fā)包。目前支持C++的其他軟件開發(fā)包很多,比如MFC、QT、ACE等。MFC是微軟提供的軟件開發(fā)包,MFC只能在Windows平臺下運(yùn)行。QT和wxWidgets類似,但使用QT的商業(yè)版本,需要支付費(fèi)用。ACE雖然是免費(fèi)開源的,但沒有GUI功能。

        一、wxWidgets框架

        wxWidgets是一個高品質(zhì)應(yīng)用程序類庫,盡管它是開源的,但有人稱其具有商業(yè)品質(zhì),它的用戶包括了AOL,AMD,NASA等大的商業(yè)和團(tuán)體機(jī)構(gòu)。wxWidgets這款框架的優(yōu)勢是真正意義上的跨平臺,wxWidgets提供了一套在多種平臺上編寫GUI程序的應(yīng)用程序接口,wxWidgets提供的API函數(shù)在它支持的所有平臺上都是相同的。wxWidgets給應(yīng)用程序提供和當(dāng)前系統(tǒng)平臺上其它應(yīng)用程序相似的外觀。

        二、使用wxWidgets

        (一)wxWidgets框架

        wxWidgets框架的設(shè)計思想是用戶程序員利用wxWidgets工具箱中提供的類拼裝自己需要的應(yīng)用程序,并組合事件處理形成完整的應(yīng)用程序。每一個wxWidgets程序都需要定義一個wxApp類的子類,需要創(chuàng)建并且只能創(chuàng)建一個這個類的實(shí)例,這個實(shí)例控制著整個程序的執(zhí)行。wxWidgets應(yīng)用程序中不會出現(xiàn)main(),而由宏IMP LEMENT_APP(wxApp)代替。用戶程序員可以利用界面構(gòu)造庫中提供的類進(jìn)行編程,但用戶至少要先建立一個wxWidgets類庫中直接由操作系統(tǒng)的窗口管理器管理的窗口類。這些窗口類是應(yīng)用程序的最上層窗口,這個窗口可以使用wxFrame、wxDialog直接創(chuàng)建,也可以從它派生自己的Frame、Dialog,在這些類上建立wxPanel等實(shí)例,最后再實(shí)例化wxControl,并為各種控件添加相應(yīng)的事件表和事件處理函數(shù)。

        (二)事件處理機(jī)制

        所有的GUI程序都是事件驅(qū)動的,應(yīng)用程序一直停留在一個循環(huán)中,等待著來自用戶或者其他什么地方的事件,一旦收到某種事件,應(yīng)用程序就扔給處理這個事件的函數(shù)。wxWidgets能處理的事件類型有鍵盤事件和鼠標(biāo)事件等,它們都是wxEvent的子類。在wxWidgets中,事件處理沒是通過事件映射表將控件接收的事件與事件處理函數(shù)聯(lián)系起來。

        BEGIN_EVEN_TABLE(TextFrame,wxFrame)

        //此處添加事件映射

        EVT_BUTTON(ID_CLICK,TextFrame::OnClick)

        END_EVENT_TABLE()

        上述宏將TextFrame類中id為ID_CLICK的按鈕按下的事件映射到該類的OnClick函數(shù)處理,OnClick函數(shù)具有這樣的形式:

        void OnClick(wxCommandEvent& event)

        在類TextFrame的定義中還要插入一個宏DECLARE_EVENT_TABLE(),這個宏能夠?yàn)槭录成浔砩伤璧臄?shù)據(jù)成員和函數(shù)聲明。

        三、wxWidgets模塊化開發(fā)

        (一)wxWidgets自定義控件的開發(fā)

        編寫wxWidgets的一個自定義的控件需要下面的步驟:

        1.編寫類聲明,通常情況下這個類是繼承自wxControl的,這個類也可以繼承自其它控件類,如wxButton。

        2.如果已有的事件類不能滿足需要,可以為控件增加新的事件類。對于按鈕被按下的事件,使用已有的EVT_COMMAND就可以了。并且如果你增加了新的事件類,應(yīng)增加相應(yīng)的事件映射宏。新增事件類型,需要在頭文件添加:

        DECLARE_EVENT_TYPE(wxEVT_MY_EVENT,id)

        聲明新的事件類型;在實(shí)現(xiàn)文件添加:

        DEFINE_EVENT_TYPE(wxEVT_MY_EVENT)

        (二)利用wxWidgets進(jìn)行模塊化開發(fā)

        從用戶需求和系統(tǒng)要實(shí)現(xiàn)的任務(wù)功能出發(fā),把大型的軟件劃分為相對較小的模塊。為了減少模塊與模塊之間的關(guān)聯(lián)性,模塊之間的邏輯結(jié)構(gòu)相對獨(dú)立。以筆者的linux平臺為例,簡單介紹模塊化開發(fā)的過程。

        1.設(shè)計自定義控件模塊的功能,模塊的輸入輸出、對外接口、事件處理等。

        2.編譯控件。這一個步驟可以編寫makefile進(jìn)行自動編譯,也可以直接使用g++命令進(jìn)行編譯。編譯生成的目標(biāo)文件后綴名一般為o。

        3.在所需要使用的平臺上測試這個控件,測試事件處理、輸入輸出數(shù)據(jù)和對外接口。

        四、總結(jié)

        作為一個功能強(qiáng)大的跨平臺的并支持多種語言的類庫,wxWidgets既可以開發(fā)GUI應(yīng)用程序,也有許多非GUI的功能來開發(fā)應(yīng)用程序。在越來越追求軟件復(fù)用的現(xiàn)代軟件開發(fā)方法中,軟件的模塊化、組件化越來越重要,設(shè)計良好的wxWidgets模塊可以實(shí)現(xiàn)軟件復(fù)用。

        參考文獻(xiàn):

        [1]Julian Smart,Kevin Hock,Stefan Csomor.Cross-Platform GUI Programming with wxWidgets.

        [2]熊凱、高茂庭、于仁師,C++語言開發(fā)跨平臺程序的研究與實(shí)現(xiàn)[J].電腦知識與技術(shù),2006(2):127-130.

        [3]朱丙立、熊江,跨平臺框架程序wxWidgets的應(yīng)用[J].電腦知識與技術(shù),2006(5):132-133.

        猜你喜歡
        類庫跨平臺控件
        用Java編寫客戶機(jī)/服務(wù)器端應(yīng)用程序
        Python在數(shù)據(jù)可視化中的應(yīng)用
        跨平臺APEX接口組件的設(shè)計與實(shí)現(xiàn)
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革方案和應(yīng)用效果
        軟件工程(2017年12期)2018-01-29 17:35:55
        數(shù)據(jù)結(jié)構(gòu)可視化類庫的設(shè)計與實(shí)現(xiàn)
        基于QT的跨平臺輸電鐵塔監(jiān)控終端軟件設(shè)計與實(shí)現(xiàn)
        基于OPC跨平臺通信的電機(jī)監(jiān)測與診斷系統(tǒng)
        基于B/S的跨平臺用戶界面可配置算法研究
        就這樣玩會VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        精品av熟女一区二区偷窥海滩| 青青草针对华人超碰在线| 国产麻豆极品高清另类| 精品一区三区视频在线观看| 日日碰狠狠添天天爽| 精品伊人久久香线蕉| 初尝人妻少妇中文字幕在线| 日本一区二区视频在线| 无码国产69精品久久久久孕妇| 亚洲一二三区在线观看| 国产一区二区三区亚洲精品| 国产精品高潮呻吟av久久黄| 熟妇激情内射com| 91免费在线| 熟妇人妻丰满少妇一区| 校园春色综合久久精品中文字幕| 亚洲中文字幕在线观看| 亚洲AV伊人久久综合密臀性色| 免费人成网站在线播放| 国产精品国产亚洲精品看不卡| 欧美gv在线观看| 国产亚洲日本人在线观看| 综合亚洲二区三区四区在线 | 青青青国产精品一区二区| 久久精品视频按摩| 色久悠悠婷婷综合在线| av无码精品一区二区三区宅噜噜| 國产AV天堂| 9l国产自产一区二区三区| 欧美伦费免费全部午夜最新| 亚洲爱婷婷色婷婷五月| 亚洲乱精品中文字字幕| 国产日产一区二区三区四区五区| 亚洲一区 日韩精品 中文字幕 | 国产精品日韩中文字幕| 在线观看日本一区二区三区四区| 狠狠色噜噜狠狠狠狠7777米奇| 国产综合精品久久亚洲| 91九色极品探花内射| 一二三四日本中文在线| 国产午夜在线观看视频播放|