wxWidgets

wxWidgets

是由C++構建的程序
wxWidgets是一個開源的跨平台的C++構架庫(framework),它可以提供GUI(圖形用戶界面)和其它工具。wxWidgets的主體是由C++構建的,但并不是必需通過C++才能使用。wxwidgets提供的gui是大量使用宏的,這就意味着它是在盡可能的使用目标系統native的gui樣式。wxWidgets的主體是由C++構建的,但你并不是必需通過C++才能使用wxWidgets.wxWidgets擁有許多其它語言的綁定(binding),使你在用其它語言編寫程序的時候也可以使用wxWidgets。
    軟件名稱: 軟件平台: 軟件語言: 開發商: 軟件授權: 軟件版本: 軟件大小: 中文名:wxWidgets 功能:提供GUI 版本:Windows 開發:愛丁堡大學

起源

wxWidgets在最開始是由愛丁堡(Edinburgh)大學的人工智能應用學院開發的,主要是内部使用,而在1992年第一次公布。2.x版本做了很大程度的改良,并且由Julian Smart, Robert Roebling, Vadim Zeitlin, Vaclav Slavik和更多其他的人所編寫和維護。

wxWidgets的主體是由C++構建的,但你并不是必需通過C++才能使用wxWidgets.wxWidgets擁有許多其它語言的綁定(binding),使你在用其它語言編寫程序的時候也可以使用wxWidgets.

wxPython a Python binding,

wxPerl a Perl binding,

wxBasic a Basic binding,

wxLua a Lua binding,

wxJavaScript a JavaScript binding,

wxJava a Java binding by Steve Perkins,

wx4j a Java binding by Dave Dribin,

wxRuby a Ruby binding,

wxEiffel an Eiffel binding,

wxHaskell a Haskell binding,

wxEuphoria a Euphoria binding,

wxAda the start of an Ada binding for wxWidgets.

wxwidgets是一個 c++編寫的用來提供gui開發的框架。它包含一個可以支持現今幾乎所有操作系統(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的新版本還提供了對掌上電腦的支持。當然,說到這裡很多人會想到java對多系統的支持,其實這是不一樣的,java的跨平台是建立在“中間代碼”的基礎上的,就是說需要在目标平台上安裝java解釋器;但是wxwidgets是c++庫,經過編譯後,他提供的是native級的機器碼,在gui編程方面,這可是意味着很大的不同。

優勢

那麼wxwidgets有什麼特别之處呢?比起其他的跨平台gui庫,有什麼好處呢?

1、(不得不放在第一位的)就是他無論對于個人還是對于商業應用都是免費的!

——它的主體框架的授權協議支持商業免費應用,其外圍功能庫中很多也是lgpl授權的,這無疑對于我等“0資本”的人來說是天大的好事。不同于Qt之類的跨平台gui庫。

2、他是跨平台的gui庫,支持的操作系統很全面,甚至支持pda(說不定過一段時間他都能夠支持symbian了)(最新版本【3.0.1】支持iOS,可以在下載的源碼包中找到wxWidgets-3.0.1.tar.bz2wxWidgets-3.0.1buildosxwxiphone.xcodeproj)。

——此跨平台非彼跨平台,它雖然不像java那樣是“全面”的,而僅僅是gui庫,但是gui是計算機編程中,最為麻煩、耗費時間、容易出現bug的部分,特别當你想要自己的軟件運行在多個操作系統上的時候,開發和維護的難度讓人難以想象。其實c++也是支持“跨平台”的,因為c++可以在任何平台上編譯運行,之所以沒幾個人說他是跨平台的,主要問題就出在變量長度和各操作系統的gui(這裡的“界面”我指得是很廣義的)上,如果解決了gui的問題,基本上就解決了c++的“跨平台”問題——至少不用為每種平台都維護一份源代碼了。

3、wxwidgets提供的gui是大量使用宏的,這就意味着它是在盡可能的使用目标系統native的gui樣式。

——你可以訪問wxwidgets網站,看看那些開發的軟件的截圖,全是系統native級别的。如果你開發了一個xp系統的軟件的話,你的軟件會仍然以“xp專有的‘小賤人’級别”的面貌展現在你面前。

4、它支持的編譯器也很多,而且borland也曾聲明将在c++builderx2裡邊提供對wxidgets的支持——預覽版都出來了。

——其實我就是看到borland在c++不景氣的時候,這麼看重這個東東,甚至用它來做“王牌”,才開始注意到他的。當然,反過來,也正是borland的支持,才使他活力大發的。

5、自然,有牛X支持,而且是開源的,wxwidgets一直都在快速穩健的開發中,其周邊工具也越來越多。

——随着MS開始全力支持他的.net,c++成了“沒落”的語言,但是不可否認,c++還是有很多用武之地的,所以根本不可能真正沒落。沒有了超牛X的支持,地球人自然開始尋求新的發展方式,wxwidgets這種開源免費,且允許商業應用的好東東,自然會被人們所重視。

前景

當然,wxwidgets也有一些不足,比如官方文檔不全(至少我覺得個官方的help遠遠不夠我的菜鳥需求,大部分都是網絡上零散的教程),對STL的支持不夠,特别是沒有源代碼的開發速度快;沒有強大全面的rad工具;還沒有形成很濃的産業氣候,等等。但是,個人覺得它的好處絕對大于它的缺點,而且很有發展前途。

上一篇:Redmine

下一篇:PhoneGap

相關詞條

相關搜索

其它詞條