b r a y d e n . o r g / Software

/ WebHome / GuiToolkits

This Web


WebHome  
Topic List  
Web Statistics 

All Webs


Books
Main
Random
Software
TWiki  

brayden.org


Home
Monthly Digest
Today's Links
Resumé
Reading List
Books RSS
Random RSS
Software RSS

Other


Dale's Blog

currently-reading
TextDrive

Links and information about the major cross-platform GUI toolkits. FoxGui, WxWindows, GtkToolkit?, others to come.

GUI Toolkits

This page has links and information on a number of cross-platform GUI toolkits. Among the criteria for evaluating these packages are:

  1. API - Ease of development - we want an API that is simple and understandable
  2. Platforms - Support at least for Windows, Linux, and FreeBSD. Support for Solaris and HPUX is also very desirable. Support for AIX would be somewhat helpful though far from necessary.
  3. i18n - Support for i18n and i10n (internationalization/localization)
  4. Size - Small footprint.
  5. Languages - Support for alternative language bindings. UI applications should not have to be written in C++ or C. Support for the RubyLanguage is a big plus.
  6. Popularity - Active development and support and widespread use.
  7. License - Open source - but no restrictions on making commercial/proprietary products from the toolkit.
  8. Documentation - we want good documentation, preferably in book-form but in printable PDF or even well-designed HTML is OK.
  9. Widgets - Good widget set. For example, grid, tree, and list widgets; MDI (Multi Document Interface); toolbars; tooltips.
  10. Builder - A visual GUI builder - something at least as good as glade, preferably better.

Other Comparisons

See GuiTopics for all topics in this category.

Overview

WxWindows

WxWindows is a cross-platform C++ GUI development library. Besides classes for windows, frames, dialogs, controls, etc., there are classes for sockets, threads, a couple data structures, date/time, files, file systems, and many others.

It runs under win32, Motif-based X-Windows, and GTK+ -based X-Windows. It also runs atop the MGL portable graphics library on a wide variety of platforms, including QNX.

It has a very clean API / object model. No builder, as far as I know. It has language bindings for Python, but I don't know of any others. I know there is not a language binding for Ruby at this time.

FastLightToolKit - FLTK

From their website:

FLTK (pronounced "fulltick") (see FastLightToolKit) is a cross-platform C++ GUI toolkit for UNIX/Linux (X11), Microsoft Windows, and MacOS X. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL and its built-in GLUT emulation. It is currently maintained by a small group of developers across the world with a central repository on SourceForge .

FLTK is designed to be small and modular enough to be statically linked - the "hello" program is only 97k when compiled on an x86 Linux system! FLTK also works fine as a shared library and is now being included on Linux distributions.

GtkPlus - GTK+

GTK+ (see GtkPlus) is written in C and mostly designed for C application development on Linux. There is a Win32 port, but it is reported as unstable, and the developers of GTK+ seem not to care much about Windows. I suppose that since only about 97% of desktop PCs run Windows, that's understandable. Or not.

FoxGui

The FoxGui (FOX - Free Objects for X) is a C++ API / object model that runs on Windows and Linux. It implements its own widgets rather than rely on native widgets (as is the case with WxWindows, for example). There are language bindings for Ruby, Python, and Eiffel. All in all, it looks like a good candidate.

XpToolkit

The XpToolkit is an XML-based cross-platform GUI toolkit developed as part of the Mozilla project. I know litte about it, except that it has been reported as fat and slow. There's a partial and unstable Ruby binding to XPCOM (cross-platform COM), but I don't know it that implies there is a Ruby binding to XpToolkit itself.

MiniGui

This is a lower-level toolkit - not really in the same category as the other packages listed here. WxWindows uses MiniGui as a basis for ports to embedded platforms and non-mainstream platforms such as QNX.

Toolkit Pages

Toolkit comparisons

See also FiveGuiPieces - a description of a set of applications to be developed for each candidate toolkit.

Where a number is given below it is a (subjective or guess) rating on a scale of 1 to 5 where 5 means 'best'.

Feature WxWindows FoxGui FastLightToolKit
API 4 5 TBD
Platforms Win32, Linux, embedded Win32, Linux, others? TBD
i18n TBD TBD TBD
Size 3 4 TBD
Languages C++, Python C++,Ruby,Python,Eiffel TBD
Popularity 5 3 TBD
License LGPL - no restrictions on proprietary code LGPL - no restrictions on proprietary code TBD
Documentation 4 2 TBD
Widgets 4 3 TBD
Builder No No Yes - FLUID

-- DaleBrayden - 04 Mar 2003

 
 
Current Rev: r1.6 - 12 Aug 2003 - 21:48 GMT - DaleBrayden, Revision History:Diffs | r1.6 | > | r1.5 | > | r1.4
© 2003-2011 by the contributing authors.