GUI Toolkit Comparison

From LXDE.org
Jump to: navigation, search

Introduction

Since we're evaluating the possibility of moving to another GUI toolkit, we did some research on this issue. To help other developers and save their time, here is some information about the comparison of the most well known toolkits we've evaluated so far. Of course, choosing one's favorite toolkit is often a matter of taste and a little bit subjective. Here we tried to make a relatively objective feature comparison to help people choose what they need.

Comparison of most well known Toolkits

The table is not complete and can give you some idea quickly. To really "feel" how good a toolkit is, just try it yourself.

Feature GTK+ Qt wxWidgets EFL FLTK Fox toolkit
Basic information
Programming language C C++ C++ C C++ C++
License LGPL LGPL or proprietary LGPL BSD LGPL with exceptions LGPL
Desktop environments Gnome, XFCE, LXDE KDE No Enlightenment 17 EDE No
Supporter RedHat Digia  ? Sponsored by Samsung  ?  ?
Theme support Yes Yes Yes (GTK+) Yes Very limited No
Freedesktop.org support Yes Partial Partial Yes No No
GLib mainloop integration Yes Yes Yes Yes No No
GUI designer Glade Qt Designer wxGlade (free) / wxDesigner(commercial) No Fluid No
Cross platform support
Windows Yes Yes Yes Yes Yes Yes
UNIX-like Yes Yes Yes Yes Yes Yes
Mac Yes Yes Yes (partial) Yes Yes Yes
Native look Partial (looks bad on Mac) Yes Yes No No No
Unicode and i18n support
Translation GNU gettext QTranslator GNU gettext-like  ?  ?  ?
Display unicode text Yes Yes Yes Yes Yes Yes
RTL support Yes Yes Yes Yes Partial Partial
Complicated text layout Yes (Pango) Yes Yes No No No
String encoding UTF-8 UTF-16 UTF-8 or UTF-16 UTF-8 UTF-8 UTF-8
Input method GTK+ input module or xinput Qt input module or xinput same as GTK+  ?  ? ?
Functionality
Signa/slot support Yes Yes Yes Yes No No
Model/View support Yes Yes No No No No
Icon view Yes Yes Yes Very limited  ?  ?
List view Yes Yes Yes Very limited  ?  ?
Tree view Yes Yes Yes No No Yes
Language bindings
C Yes No No Yes No No
C++ gtkmm - -  ? - -
C# Gtk Sharp Qyoto wx.NET No No No
Java Yes Yes  ? No No No
Python Yes Yes Yes  ?  ?  ?
Perl Yes Yes Yes  ?  ?  ?
Comment  ?  ?  ?  ?  ?  ?