版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
前 關于“導引 為什么 看本文的方 看本文需要的基 本文特 2、安裝 2.1 為什么要自己編譯 編譯wxWidgets前的準 編譯 用命令行編譯 意外處 多知道一 wxWidgets應用程序初體 由“空項目”建立和運行GUI應用程 建立項 編譯和運行項 利用Code::Blocks的向?qū)Ы?wxWidgets學習資料及利用方法指 《使用wxWidgets進行跨平臺程序開發(fā) 《wxWidgetstutorial 用好wxWidgets的文 成熟平臺常有文 wxWidgets的文 查找文 查看文檔的設備支 在編程環(huán)境中找?guī)?深入學習路線建 看書的策 的案 用wxSmith進行可視化設 用wxSmith創(chuàng)建應用程序的外 為控件加入事件處理程 寫代碼與拖控 深入學習的建 附:學習材料...................................................................................................................前關于“導引大學中的“C++程序設計”課程,以掌握基本的C++語法,并運用其解決一般的計算問題為目的。學生在學習中編出的程序,在“長相”上,與實際的產(chǎn)品不太一樣。學生感慨,大學生在成長為一名合格的工程技術的過程中,需要多階段、多環(huán)節(jié)的培養(yǎng),一門課程抓住要解決的主要問題,其他課程再解決其他問題。大學的課程有這種階段隆的特點。在實際的工程中,用++求高的關鍵計算,非C/C++不可。界面,某種角度講,不是。但是,作為大眾產(chǎn)品,沒有好長相,的可能就是失敗。無論如何,學習了C++C++做出界面友好的程序,這個想法不能丟。作為學過C++的同學,能做出一個漂亮的應用有了修過的課程做基礎,這件事情可以在課外自行拓展。為有C++基礎的學生,需要制定一個初步“進階”的方案。本文就是要做這樣的事為什么wxWidgets是一個開源的跨平臺的C++構(gòu)架庫(framework,它可以提供GUI(圖形用掌握了wxWidgets,就有辦法搞定常見的需要讓計算機完成的任務。有了使用開發(fā)的體驗,也打開了引入其他構(gòu)架開發(fā)的大門wxWidgets是開源的,無論對于個人還是對于商業(yè)應用都是免費的。wxWidgets可以支工具也越來越多。wxWidgets支持各種主流的編譯器,通過“重新編譯”的方式支持的移植。wxWidgets吸引還有,盡可能的使用目標系統(tǒng)“原生的”的GUI樣式,界面與環(huán)境關于wxWidgets的好,上網(wǎng)搜索可以獲得。同樣稱為C++構(gòu)架庫的,還有MFC和Qt。MFC是微軟制造的經(jīng)典。當然,MFC只適合Windows平臺,也顯老舊。對于這個時期剛起步的大學生而言,直接學習面向跨平臺的開發(fā),理所當然。能將學生引向讀開源代碼,也是努力的方向。Qt同樣跨平臺,同樣開源。Qt由商業(yè)機構(gòu),有人甚至說更出眾驗。早已經(jīng)不是“從一而終”的時代了,何況身處IT這樣一個變化快的行業(yè)中。用學習A的體驗,具備學BC的能力,這是最重要的。也許本文選wxWidgets都是一個偶然。借助wxWidgets,獲C++應用程序開發(fā)的初步在本文中,還用了Code:Blocks,一個優(yōu)秀的開源++DE。為Code:Blocks,而不是VS20xx,或者其他?同樣無聊的問題,不去對比。實際情況是,我在教學中,學生會用多種DE,主要用Code::Blocks。多加一句,Code::Blocks還是很好的??幢疚牡姆街豢床痪毧瞻咽健1疚?,以及后續(xù)的學習路線,不是看下去的,而是做下去的。光的知識和技能邊看邊做,此看本文需要的基C++的大學生或程序設計者程序設計的一般知識和技能:簡單而言,學過C++課程,做過了一些練習。掌握了中類、對象、構(gòu)造函數(shù)、重載、繼承、多態(tài)等基本概念。要補課,可以到《C++安裝Code::Blocks,然后編譯、運行幾個程序即可具備。Code::Blocks的使用請看net/sxhelijian/article/details/17710041。本文特本文最大的特點是虎頭蛇尾這是作者的自我表揚,不是批評。本文想要起到的作用無非兩點引導讀者能夠搭建起一個能開始工作的環(huán)配置環(huán)境的這本來不淺,這樣的鍛煉足夠珍貴。但搭建環(huán)境的過程中,有不少細節(jié)并wxWidgets盡快做出程序來這樣一個目標,盡快地讓讀者能開始工作,這是第一要務。引導讀者正確運用文發(fā)程中用的多的檔而不書(或許有些時候會將文檔印成書。能盡早學會使用文檔中的,找到需要的幫助信息,對初學者的意義,就是一場學習的。之所以做虎頭,是因為萬事開頭難。本文只解決開頭難的事情。開了頭,就好了之能以能這樣做,是因為,只要開頭,就有無數(shù)多的資料為你所用。有人 2、安裝以下文字,適合于大部分初學者的工作環(huán)境。為能邊看邊做,請確認:(1)你用的是Windows操作系統(tǒng)(強烈建議初學者進階后,適時開啟Linux下開發(fā)的體驗);(2)已經(jīng)安Code::Blocks(版本不限,但也別太低了3)Code::Blocks使用gcc編譯器,隨Code::Blocks的安裝已經(jīng)裝好。2.1wxWidgets的官網(wǎng)在,頁面是作為Windows用戶,從頁面如下畫圈的兩個文件。Windows.ZIP是wxWidgets的源代碼,Manual(HTML).zip則是在學習過程中最重要的參考(即前述的文檔。在4.2節(jié)中,將專門介紹文檔的使用。后,將文件Windows.ZIP解壓縮,下圖是我解壓縮后的結(jié)果,我將其解壓到了為什么要自己編譯setup.exe不少開源也提供安裝程序,用戶安裝后就可以使用。這是適用于的使用者的方式,專業(yè),卻是常用的套路。wxWidets不是一般的應用程序,是為支持應用程序開發(fā)的平臺。wxWidgets面對的是在不同操作系統(tǒng)(Linux、unix、Windows、MacOS)下工作的開發(fā),他們使用的C++編譯器(GCC、MS、Borand及其他各種形形、版本各異。wxWidgets不便于提供各種組合下的安裝程序。開發(fā)源碼,自己編譯自己用。這種方式,創(chuàng)建的是最適合自己的環(huán)境。實際上,不這樣做,往往得不到適合自己的開發(fā)環(huán)境所以,下面的步驟或許會有點性。但不要有牢騷。這樣做一遍,你作為開發(fā)者的成色,在體驗中,的wxPack使用的GCC版本低了,安裝順利,但卻不能正確運行在我wxWidgets前的準編 wxWidgets,要先準備好編譯器,并且配置好運行編譯器的“環(huán)境”裝的GCC編譯器,也可以在Code::Blocks中通過設置進行工作。總之先找到Code::Blocks所在的文件夾(后文中我用“X:\CodeBlocks\”代表,X:\CodeBlocks\要替換為你使用的實際文件夾名)。隨Code::Blocks安裝的GCC,在文件,如下圖所示,就是支持你的C++工作的GCC系列程序。記下這個文件夾名(簡單辦法,將路徑下來,暫時粘貼到一個文本文件中備用。(TH)即可。在Win7中,鼠標右擊桌面上的“計算機”圖標,選菜單中的“屬性”,接下來,就是如下圖中從1到6的一系列操作,將“變量名”為TH英文的分號,再加入你記下的X:\CodeBlocks\MinGW\bn。注意,不要將原有的內(nèi)容替換掉,而是追加你你需要的路徑即可。設置PATH的值。還有別式,直接用 命令做。有不少資料中講這種做法,本文不做介紹編譯wxWidgets的事情需要用命令行的方式完成用命令行編譯命解X:(回車當前盤置為X,X是你解壓縮wxWidgets用的盤符cd\wxWidgets-3.0.0\build\msw(回車當前置為/wxWidgets-3.0.0\build\msw,可以查看這個文件夾中的文件,msw命解X:(回車當前盤置為X,X是你解壓縮wxWidgets用的盤符cd\wxWidgets-3.0.0\build\msw(回車當前置為/wxWidgets-3.0.0\build\msw,可以查看這個文件夾中的文件,msw是專供微軟(ms)的Windows(w)用的編譯需要的文件(注:wxWidgets的C++源代碼在\wxWidgets-3.0.0\src中gccv(回車確。下圖的輸出,表明在X:/wxWidgets-3.0.0\build\msw目錄中,可以運行X:\CodeBlocks\MinGW\bin中令。還可以看到,當前使用的GCC版本是4.7.1下圖是我運行上表中令出現(xiàn)的結(jié)果下面就可以要開始編譯wxWidgets了。就在DOS提示符后面,輸入下面令意外處我在編譯wxWidgets中,苦等幾十分鐘,等來了一個error,最后兩行提示是collect2.exe:error:ldreturned1exitSHARED和BUILD參數(shù)的選取上再做些組合。(release所以可以運行令還有3個2 應用程序初體驗本文中所有的體驗,在Code::Blocks中進行為了在Code::Blocks中編譯運行C++寫的wxWidgets程序,需要再做些設wxWidgets根環(huán)境變量。設置方法類似于2.3中設置PATH變量的方法。在Win7中,右擊桌面上的“計算機”圖標,選菜單中的“屬性”,在為X:\wxWidgets-3.0.0。接下來的設置要在Code::Blocks中進,include中填入“${wxwin}\include”,lib中填入“${wxwin}\lib”,這些都是開發(fā)中需要用到的由“空項目”建立和運行GUI《wxWidgetstutorial( 建立項建立項目的過通過菜單“File”->“New”->“Project…”,選擇 project”建一個空項wxTest。點擊“next”后,要求選擇編譯器及生成的目標文件類型,照下圖選點擊“Finish”后,將生成一個空項目,如框中,選擇要增加的文件類型是“C/C++source(即源文件再一個框中選擇語言是“C++”。接著,在下圖所示的框中,給出帶完整路徑的源文件名(本例中用main.cpp,注意將Debug復選框選中。點擊“Finish”后,將下面的源程序輸入(或粘貼)到文件main.cpp中#include#includeclassSimple:public{Simple(constwxString&: {}classMyApp:public{virtualboolbool{Simple*simple=newSimple(wxT("Simple"));return}加入了源代碼之后的項目如下圖所示下面將對這個項目進行編譯,進而看到運行結(jié)果編譯和運行項fatalerror:wx/wx.h:Nosuchfileor選擇菜單“Build”中的“Bfatalerror:wx/wx.h:Nosuchfileor也就是說,找不到要包含的頭文件wx\wxh中,設置Compiler。通過“Add”增加 wud和接著Build,將不再有出現(xiàn)的一大堆錯誤提示,來自于連接環(huán)節(jié),問題是找不到庫文件文件”。如圖所示Add按鈕加X:\wxWidgets-3.0.0\lib\gcc_dll文件夾中的所有.a文件但是運行程序時,會出現(xiàn)錯誤,如下Linkersettingslib\gcc_dll文件夾中的.a文件,這些屬于“動態(tài)庫”(這個術語自己去吧。這種方式的好處在于編譯速度快,目標代碼小,但是在編譯好的程序運行時,必須要能找到需要的.dll文件。最簡單的辦法,就是拷貝.dll文件。利用Code::Blocks本節(jié)下面的材料,非作者,整理自 通過菜單“File”->“New”->“Project…”,選擇最后面的wxWidgetsproject點擊“Go”進入工程配置向?qū)В紫葧鰜硪粋€歡迎窗口,直接nextwxWidgets按“Next”,然后輸入項目名“wxtest”,選擇保存項目的文件夾繼續(xù)“Next”,輸入作者和及一些說明信息繼續(xù)“Next”,選GUI設計工具和程序類型wxSmithDialogbased的wxWidgets根 按“Next”,這里我們看到默認就是選擇了MinGW編譯器了,下面的我們只做版本,所以只選上“Create“Debug”configuration”繼續(xù)“Next”,接下來要選擇怎么使用wxWidgets庫,這里根據(jù)你編譯的庫是什么樣的來按“Next”,因為選擇了“ConfigureAdvancedOptions”,所以要對使用wxWidgets按“Next”進到最后一步,我們選擇需要用到的庫,不知道的話全部選上點擊“Finish”,工程隨即建立成功和3.1中輸入的程序長得差不多。其實,向?qū)У淖饔?,就是通過一系列的選擇,由向?qū)С绦蜃詣由蓱贸绦?。如上步驟創(chuàng)建的應用程序的運行的結(jié)果是:在編譯和運行時,都有可能出現(xiàn)一些錯誤。這一般不是程序本身的問題,而是 的編譯環(huán)境和運行的支持文件不全而造成的請參閱3.1.2小節(jié),可能會幫助你排除問題,讓程序正確運行 學習資料及利用方法指導初學者常苦于找不到參考資料。實際上,是找不到,不是沒有。真正有用的資料,常常也這種能力,同樣,也是在實踐中獲得,而不是有誰為你講一堂課就能得到。本章的學習資料,從最一般的——書籍開始談起C++wxWidgets的書《使用wxWidgets gp/produc/B00AWDQ30源代碼,從net/detail/cjylg/2997827。看得好,請支持紙質(zhì)。這本書的英文版叫《CrossPlatformGUIProgrammingWithwxWidget(見,我瀏覽過其中的一部分,讀起來不難我推薦閱讀的是wxwidgets的Wiki主頁()中Guides&Tutorials部分(%26Tutorials)的一《wxWidgetstutorial( /gui/wxwidgets/。寫作時再次看wxwidgets的Wiki《wxWidgetstutorial子,啟發(fā)讀者獲得對wxWidgets的認知。我一邊讀代碼,一邊練習,完成了一次愉快的學習時,也就是掌握了用wxWidgets開發(fā)應用程序的基本路數(shù)之時。為方便讀者,我將這個中整理到一個Word文檔中,作為本的一個附件,一起打包供使用。在Word文檔中,加入了部分批注,是我在學習中查閱得到的線索。wxWidetstuoral》是英文版的。這其實是個好事,在這語,是T學生的習形態(tài)。一直鼓勵“在英語中”(見net/xheijian/artce/deails/12177147,這就是一個大好的時機。是否能看下去,不決定于你英語水平的高低,而是決定于你的心態(tài)。再進一步,這本描述性文字很少,即使高考英語時是在考場抓鬮決定ABCD的,也能看下去,只要去看。用好wxWidgets的文在互聯(lián)網(wǎng)時代,另一類資料必須引起學習者的注意,那就是的文檔和成熟平臺常有文用微軟平臺開發(fā)程序時,最好的參考是MSDN(/library/,而 html,也有部分內(nèi)容被翻譯成中文(。在開發(fā)過程中,需要的類、函數(shù)、宏是記不住的。有文檔查找,專業(yè)不記這些。大多數(shù)成平臺,既提供真正的文檔,這些文檔也可以到本地,通過瀏覽器閱讀。wxWidgets的文F:\wxWidgets-3.0.0-docs-htmlindex.html文件,雙擊打開,如下圖所示,這就建立打開文檔的快捷方式,將方便以后的使用。查找文:{(constwxString&bar=new:{(constwxString&bar=new file=new bar->Append(file,wxT("&File")); }現(xiàn)在想知道wxFrame類的構(gòu)造函數(shù)中的各參數(shù)含義,要點的是:Class->Class->F(wxWidgets中類名均以wx開頭,取wxFrame中的F),如下圖wxFrame::wxFrame wxWindowconstwxPoint&constwxSize&constwxString)parentparentTherent.ThismaybeNULL.Ifitisnon-NULL,theframealwaysbedisplayedontopoftheparentwindowonidThewindowidentifier.Itmaytakeavalueof-1toindicateadefaulttitleThecaptiontobedisplayedontheframe'stitleposThewindowposition.ThevaluewxDefaultPositionindicatesadefaultposition,chosenbyeitherthewindowingsystemorwxWidgets,dependingonplatform.sizeThewindowsize.ThevaluewxDefaultSizeindicatesadefaultsize,chosenbyeitherthewindowingsystemorwxWidgets,dependingonplatform.styleThewindowstyle.SeewxFrameclassnameThenameofthewindow.Thisparameterisusedtoassociateanamewiththeitem,allowingtheapplicationusertosetMotifresourcevaluesindividual
pos=wxDefaultPosition,size=wxDefaultSize,name=wxFrameNameStr下面請做一個練讀下面的程序時,想知道Append函數(shù)的情況。如何利用文關于上面的代碼中還有哪些疑問,試著通過文檔給出解答查看文檔的設備支如果有條件,布置如下圖所示的工作條件。屏,一個看文檔,一個寫程序當然,作為在校學生,當場地受限時,也不必太糾結(jié)這樣的條件了。畢竟,這不是必須在編程環(huán)境中找?guī)捅疚氖褂玫木幊汰h(huán)境是Code::Blocks。C++編碼規(guī)范中,將類、常變量、宏定義等保存在頭文件(.h)中,而將類、函數(shù)的實現(xiàn)用源文件(.cpp)保存。頭文件實際上就是一個非常好的幫助文檔。符合規(guī)范要求的開發(fā)者,通過恰當名,總能夠讓程序的閱讀者在Code::Blocks中,為找到這些信息提供了足夠的支持。其實,其他IDE,也能做到這例如,對于4.2.3中的那一段代碼:(constwxString&{{bar=new file=new file->Append(wxID_EXIT,wxT("&Quit"));//例bar->Append(filewxT("&File"));// }
類的 在Code::Blocks中,將打開新的頁簽,顯
類 。但
類并 Append這樣的成員函數(shù),發(fā) 類 類的派生類,推斷Append應 是繼
類的成員函數(shù)。用相同的操作,在 Base類名上單擊鼠標鍵并選擇對應的選項,在新出現(xiàn)的頁簽中,找到了Append成員函數(shù)的4種重載形式的的聲現(xiàn)在做一個練習。找出bar->Append(filewxT("&File"));中Append函數(shù)深入學習路線建在完成本文前3章的工作之后,建議同時看《使用wxWidgets進行跨平臺程序開發(fā)》《 tutorial》這兩本書,同步地實踐程序同步看,意味著交叉、重復再看??梢韵冗\行例程,有感性認識之后再閱讀代碼。一次看化解。我在學習中,看完了《使用wxWidgets進行跨平臺程序開發(fā)》的前兩章在Code::Block中頻繁新建項目很麻煩,況且每建一個項目還得設置Buildoptions...。我#include<wx/wx.h>#include<wx/ 《wxWidgetstutoral》中的例子寫得非常規(guī)范,嚴格執(zhí)行了.h頭文件中寫,cpp源文件中寫實現(xiàn)的要求。我在實踐時,偷了個懶,將本應放在多個文件中的內(nèi)容,粘貼到前述的一個文件中。當然,諸如#include<wx/wx.h>#include<wx/ 之類的包含頭文件要保留,#include#include 安裝好的wxWidgets中還提供了很多演示和示例的項目。X:\wxWidgets-3.0.0\demos中是X:\wxWidgets-3.0.0\samples中,學習到一定時候,運行這例如,wxWidgets的Demo中的一個項目forty,是一個紙牌游戲,運行結(jié)果如下圖這個項目中的源文件如下圖所示在Code::Block中新建一個項目,將Demo\forty中所有.cpp和h文件到項目所在文Addfile...的方式將文件加入項目,成為項目的源文件和頭文件。Demo為適應多種平臺,提供了很多的文件,一般只需要.cpph圖形格式文件,程序中一般會用到。項目forty中就有3個這樣的文件。在更極少數(shù)情況下,還可能有其他文件需要過去。這可以通過讀代碼,看源程序中是件。比如項目forty中的abouthtm文件。后兩類文件過去即可,是為支持程序運行的,不必通過Addfile...將其加入項目。wxSmith進行可視化設計4章的要求看過了相關的書籍,應該具備了通過直接寫代碼的方式界面程序的能力。而在實際的工程開發(fā)中,做界面的工作常通過可視化的操作完成。wxSmith就是這樣一個支持wxWidgets快速開發(fā)的一個工具,專門用來做界面。wxSmith已經(jīng)是Code::Blocks的一個標準配置,在Code::Blocks菜單中可以看到這一項。這一章,從做一個應用程序開始。應用程序的窗口中有兩個按鈕,按Say 按鈕,屏幕上會出現(xiàn) oWorld”,按Quit按鈕,程序?qū)⒔Y(jié)束用wxSmith創(chuàng)建應用程序的外創(chuàng)建一個空項目,名稱為plain。選擇菜單wxSmith->AddwxFrame,將要建立的命名plainFrame在左側(cè)的Management窗口中,顯示Resources頁簽,我們看到的界面如下圖所示屬性,以及加入響應“OnClick”之類事件的代碼。點擊靠左的顯示和設置“屬性而右邊的顯示和設置“事件(現(xiàn)在動手試一下。現(xiàn)在只看到整個Frame的屬性和事件,我們做些修例如,將Defaultsize屬性后面的“√”取消掉,將隨后的Width和Height分別設置400和200。再將用來設置窗口標題欄的title屬性改變?yōu)?oworld”,如下圖所示在設計區(qū)下方,有一排小按鈕,用于向窗口中“控件”,如下圖,用鼠標在其上滑過,可以看到其名稱,如wxBitmapButton、wxanel、wxStatcext、wxButton等。可見 提供了相當豐富的控件下面,向你的窗口中加入四個控件,分別是:1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 茶樹栽培工7S考核試卷含答案
- 承攬展會合同范本
- 微軟軟件合同范本
- 關于購房合同范本
- 房屋訂購合同協(xié)議
- 建設購買合同范本
- 采購瓜苗合同范本
- 鋼琴調(diào)律合同協(xié)議
- 防疫工作合同范本
- 轉(zhuǎn)賣電腦合同范本
- 江西d照駕駛員理論考試
- GB/T 13298-2015金屬顯微組織檢驗方法
- 保潔人員工作手冊
- 滴滴打車用戶出行習慣報告
- 學校食堂滿意度課件
- 商業(yè)中心項目質(zhì)量標準化交流匯報56
- 手指末節(jié)肌腱止點重建課件
- 部編人教版九年級下冊語文:古詩文默寫 復習課件
- 保密管理-保密教育培訓簽到簿
- 《中藥炮制技術》 教學課件大全
- CA6150普通車床說明書
評論
0/150
提交評論