WxWidgets
| 一位讀者要求擴充套件本書以包含更多內容。 您可以透過 新增新內容(瞭解如何操作)或在 閱覽室中尋求幫助。 |

wxWidgets,以前稱為 wxWindows,是一個用於使用 C++ 開發跨平臺 GUI 應用程式的框架。Julian Smart 於 1992 年在愛丁堡大學人工智慧應用研究所啟動了該框架。1995 年,Markus Holzem 釋出了一個移植到 Xt 的版本。1997 年 5 月,Windows 和 GTK+ 埠合併並置於 CVS 儲存庫中。
wxWidgets 為您提供了一個單一的、易於使用的 API,用於在多個平臺上編寫 GUI 應用程式。將其與您的平臺(Windows/Unix/Mac)和編譯器(幾乎所有流行的 C++ 編譯器)的適當庫連結,您的應用程式將採用適合該平臺的外觀和感覺。除了強大的 GUI 功能之外,wxWindows 還為您提供:聯機幫助、網路程式設計、流、剪貼簿和拖放、多執行緒、各種流行格式的影像載入和儲存、資料庫支援、HTML 檢視和列印等等。
wxWidgets 是一個非常類似於 MFC 的框架,除了它本身的幾個負面之處。那些意識到 Linux 使用者數量不斷增加並希望編寫跨平臺 GUI 應用程式的 MFC 程式設計師可以使用 wxWidgets。使用 wxWidgets,使用基於 C++ 的框架非常容易,而且它擁有 13 年的成功記錄。事實上,wxWidgets 非常穩定,並且支援以下平臺:
- Windows 3.1、Windows 95/98、Windows NT、Windows 2000/XP、Windows ME、Windows CE。
- Linux 和其他帶有 GTK+ 的 UNIX 平臺。
- 帶有 Motif 或免費 Motif 克隆 Lesstif 的 UNIX。
- Mac OS。
- 正在研究嵌入式平臺。請參閱 wxUniversal 專案。
- 正在開發 OS/2 埠,您還可以為 OS/2 上的 GTK+ 或 Motif 編譯 wxWidgets。
有很多可用於編寫跨平臺 GUI 開發的選項,例如:JAVA、Mono.NET、Qt 等。Java 無法證明自己是一個有效的替代方案。Qt 很好,但它是商業的,而且沒有人知道它的未來。Mono.NET 似乎不錯,但主要由微軟推動,它似乎是微軟工作的複製品,而且還沒有證明自己是一個成功的替代方案。此外,人們不會喜歡對高效軟體使用額外的層級負擔。由於 wxWidgets 不使用任何中間層,只使用平臺上可用的原生控制元件,因此它為應用程式提供了良好的外觀和感覺。
* It is very complete. There are many utility classes like : wxRegEx, wxFTP, wxSplashScreen, wxZipInputStream, etc.
* It is still heavily developed, and has a lot of support from the open source community.
* Many compilers and platforms are supported : Windows, Linux, Mac, Unix.
* There's a lot of documentation available on the internet, forums, wxBook.
* It's free for personal and commercial use, and is more flexible than the LGPL license.
* Whenever possible, wxWindows uses the platform SDK. This means that a program compiled on Windows will have the look and feel of a Windows program, and when compiled on a Linux machine, it will have the look and feel of a Linux program.
* Ease of learning, it has the same Event tables and similar API and classes like that of WINAPI and MFC.
* A lot of sample is provided in the samples directory of the installation, which contains how to use the basic controls, multi threading, MDI, drag and drop, sockets, printing and lots more.
* A lot of ready to use classes are available, like: wxGenericDirCtrl, wxCalendarCtrl, wxDatePickerCtrl, wxTipWindow, wxStyledTextCtrl, wxStaticPicture, wxLEDNumberCtrl, wxEditableListBox, wxFoldPanelBar, wxGIFAnimationCtrl, wxSplashScreen, OGL (Object Graphics Library), FL (Frame Layout), etc. This is one of the main repository.
* A lot of add on libraries are available to make the programming task easier:
o wxMozilla.
o wxIndustrialControls.
o wxCURL.
o ToasterBox.
o wxVTK.
o wxDockIt.
o wxIFM.
o wxMathPlot.
o wxTreeMultiCtrl.
o wxAUI.
o wxPropertyGrid.
o wxSMTP.
o wxResizeableControl.
o wxOTL.
o wxReportWriter.
o wxHyperlinkCtrl.
o wxSQLite.
o wxIE.
o wxCTB.
o AWX.
o wxSpellChecker.
o wxArt2D.
o wxImprola.
o wxHTML.
o wxStEdit.
o wxLCDWindow.
o mmwx.
o LitWindow.
o Keybinder.
o wxBetterDialog.
o wxBZipStream.
o wxCrashReport.
o wxHTTPServer.
o wxRarInputStream.
o wxSheet.
o wxStreamMerger.
* Multi threading. * Clipboard and drag and drop. * Network programming, like: wxSMTP, wxHTTP, wxFTP. * Image loading and saving in a variety of popular formats. * Streams (ZIP, Network, File, etc.), like: wxRarInputStream. * Database support, like: wxDao. * HTML viewing and printing, like: wxMozilla, wxIE. * XML based resource, multi language/Unicode support. * Default style themes available with the OS (e.g.: XP style themes).