wxWidgets is a C++ library that lets developers create applications for Windows, OS X, Linux and UNIX on 32-bit and 64-bit architectures as well as several mobile platforms including Windows Mobile, iPhone SDK and embedded GTK+.
It has popular language bindings for Python, Perl, Ruby and many other languages. Unlike other cross-platform toolkits, wxWidgets gives its applications a truly native look and feel because it uses the platform's native API rather than emulating the GUI. It's also extensive, free, open-source and mature.
wxWidgets gives you a single, easy-to-use API for writing GUI applications on multiple platforms that still utilize the native platform's controls and utilities. Link with the appropriate library for your platform (Windows/Unix/Mac, others coming shortly) and compiler (almost any popular C++ compiler), and your application will adopt the look and feel appropriate to that platform. On top of great GUI functionality, wxWidgets gives you: online help, network programming, streams, clipboard and drag and drop, multithreading, image loading and saving in a variety of popular formats, database support, HTML viewing and printing, and much much more.
wxWidgets allows you to target Windows 95/98/ME, Windows NT/2K/XP, Linux/Unix with the GTK+ toolkit (or plain X11, or Motif), and MacOS. So, you don't have to worry that your development investment will be made obsolete by the requirement to target another platform. Very little platform-specific power is sacrificed by the breadth of coverage, since missing functionality is often emulated, such as MDI (Multiple Document Interface) frames and the advanced tree and list controls. If you want, you can even cross-compile Windows applications without leaving your Linux environment.
wxWidgets is free and open source. That doesn't mean it's a poor man's tool: it just means that it is developed by an enthusiastic and talented Internet-based team who are building a quality toolkit that lives up to their own expectations and standards.
It also means that you don't have to worry about wxWidgets' vendor going broke: there is no single vendor, and you will always have access to the source code.
The licence for wxWidgets means that anyone can use it, for proprietary or open source (and GPL'ed) software.
Documentation and samples
wxWidgets has a reference manual running to around 1800 pages, in a format to suit everyone: HTML, Windows Help, and Acrobat PDF. The user can also get better acquainted with the API by looking at the selection of over 50 samples.
wxWidgets is documented using Tex2RTF, a free add-on utility with which you can provide your own applications with cross-platform online help and printed manuals.
Wide range of control and window classes
wxWidgets has the usual basic controls such as text and bitmap buttons, text entry, scrolling list, combobox, checkbox, and so on, plus more advanced classes including:
* wxTreeCtrl: shows a hierarchy of text or bitmap labels.
* wxListCtrl: shows a list of small or large icons; in report mode, it shows a header with resizeable elements, and columns of text.
* wxNotebook: shows tabbed pages. The control can be used within dialogs and other windows.
* wxMDIParentFrame, wxMDIChildFrame allow child frames to be viewed inside a main frame. This is implemented using tabs on non-Windows platforms.
* wxScrolledWindow: implements a convenient scrolling window, though different scrolling behaviours may be implemented to suit the application.
* wxSplitterWindow and wxSashWindow: support for windows with sashes (divisions).
* wxGauge: supports gauge behaviour using the appropriate look and feel for the platform.
* wxToolBar: on each platform, a good-looking toolbar is available.