wxWidgets跨平臺 GUI 框架
wxWidgets是一個開源的跨平臺的C++構(gòu)架庫(framework),它可以提供 GUI(圖形用戶界面)和其它工具。支持所有版本的Windows、帶GTK+或Motif的Unix和MacOS。
wxWidgets在最開始是由愛丁堡(Edinburgh)大學(xué)的人工智能應(yīng)用學(xué)院開發(fā)的,主要是內(nèi)部使用,而在1992年第一次公布。 并且由Julian Smart, Robert Roebling, Vadim Zeitlin, Vaclav Slavik和更多其他的人所編寫和維護(hù)。
wxWidgets的主體是由C++構(gòu)建的,但你并不是必需通過C++才能使用wxWidgets.wxWidgets擁有許多其它語言的綁定(binding),使你在用其它語言編寫程序的時候也可以使用wxWidgets.
wxwidgets是一個 c++編寫的用來提供gui開發(fā)的框架。它包含一個可以支持現(xiàn)今幾乎所有操作系統(tǒng)(Version 2 currently supports all desktop versions of MS Windows, Unix with GTK+, Unix with Motif, and MacOS. An OS/2 port is in progress.)的GUI庫和其他一些很有用的工具,提供了類似MFC的功能。而且,特別要說一下,這個c++lib還的新版本還提供了對掌上電腦的 支持。當(dāng)然,說到這里很多人會想到j(luò)ava隊(duì)多系統(tǒng)的支持,其實(shí)這是不一樣的,java的跨平臺是建立在“中間代碼”的基礎(chǔ)上的,就是說需要在目標(biāo)平臺上 安裝java解釋器;但是wxwidgets是c++庫,經(jīng)過編譯后,他提供的是native級的機(jī)器碼,在gui編程方面,這可是意味著很大的不同!
那么wxwidgets有什么特別之處呢?比起其他的跨平臺gui庫,有什么好處呢?
1、(不得不放在第一位的)就是他無論對于個人還是對于商業(yè)應(yīng)用都[font color=#ff0000]免費(fèi)[/font]!
——它的主體框架的授權(quán)協(xié)議支持商業(yè)免費(fèi)應(yīng)用,其外圍功能庫中很多也是lgpl授權(quán)的,這無疑對于我等“0資本”的人來說是天大的好事。不同于gt之類的跨平臺gui庫。
2、 他是跨平臺的gui庫,支持的操作系統(tǒng)很全面,甚至支持pda(說不定過一段時間他都能夠支持symbian了)。
—— 此跨平臺非彼跨平臺,它雖然不像java那樣是“全面”的,而僅僅是gui庫,但是gui是計(jì)算機(jī)編程中,最為麻煩、耗費(fèi)時間、容易出現(xiàn)bug的部分,特 別當(dāng)你想要自己的軟件運(yùn)行在多個操作系統(tǒng)上的時候,開發(fā)和維護(hù)的難度讓人難以想象。其實(shí)c++也是支持“跨平臺”的,因?yàn)閏++可以在任何平臺上編譯運(yùn) 行,之所以沒幾個人說他是跨平臺的,主要問題就出在變量長度和各操作系統(tǒng)的gui(這里的“界面”我指得是很廣義的)上,如果解決了gui的問題,基本上 就解決了c++的“跨平臺”問題——至少不用為每種平臺都維護(hù)一份源代碼了。
3、 wxwidgets提供的gui是大量使用宏的,這就意味著它是在盡可能的使用目標(biāo)系統(tǒng)native的gui樣式。
——你可以訪問wxwidgets網(wǎng)站,看看那些開發(fā)的軟件的截圖,全是系統(tǒng)native級別的。如果你開發(fā)了一個xp系統(tǒng)的軟件的話,你的軟件會仍然以“xp專有的‘小賤人’級別”的面貌展現(xiàn)在你面前。
4、 它支持的編譯器也很多,而且borland也曾聲明將在c++builderx2里邊提供對wxidgets的支持——預(yù)覽版都出來了。
——其實(shí)我就是看到borland在c++不景氣的時候,這么看重這個東東,甚至用它來做“王牌”,才開始注意到他的。當(dāng)然,反過來,也正是borland的支持,才使他活力大發(fā)的。
5、 自然,有牛X支持,而且是開源的,wxwidgets一直都在快速穩(wěn)健的開發(fā)中,其周邊工具也越來越多。
—— 隨著m$開始全力支持他的.net,c++成了“沒落”的語言,但是不可否認(rèn),c++還是有很多用武之地的,所以根本不可能真正沒落。沒有了超牛X的支 持,地球人自然開始尋求新的發(fā)展方式,wxwidgets這種開源免費(fèi),且允許商業(yè)應(yīng)用的好東東,自然會被人們所重視。
當(dāng)然,wxwidgets也有一些不足,比如官方文檔不全(至少我覺得個官方的help遠(yuǎn)遠(yuǎn)不 夠我的菜鳥需求,大部分都是網(wǎng)絡(luò)上零散的教程),特別是沒有源代碼的開發(fā)速度快;沒有強(qiáng)大全面的rad工具;還沒有形成很濃的產(chǎn)業(yè)氣候,等等。但是,個人 覺得它的好處絕對大于它的缺點(diǎn),而且很有發(fā)展前途。
