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).