This article provides a list ofwidget toolkits (also known asGUI frameworks), used to construct thegraphical user interface (GUI) of programs, organized by their relationships with variousoperating systems.
| Toolkit name | Windows | macOS | Unix-like | Programming language | License |
|---|---|---|---|---|---|
| AWT | cross-platform | Java | |||
| CEGUI | Yes | Yes | Yes | C++ | MIT |
| Cocoa | Partial | Yes | No | Objective-C | Proprietary |
| Elementary | Yes | Yes | Yes | C | LGPL,BSD |
| FLTK | Yes | Yes | Yes | C++ | LGPL |
| Fox toolkit | Yes | No | Yes | C++ | LGPL |
| Fyne | cross-platform | Go | BSD | ||
| GNUstep | Yes | Yes | Yes | Objective-C | LGPL |
| GTK | Yes | Yes | Yes | C | LGPL |
| Kivy | cross-platform | Python | MIT | ||
| LCL | Yes | Yes | Yes | Object Pascal (Free Pascal) | LGPL |
| IUP | Yes | No | Yes | C | MIT |
| Juce | cross-platform | C++ | GPL, proprietary | ||
| LessTif | No | No | Yes | C | LGPL |
| Motif | No | No | Yes | C | LGPL |
| MFC | Yes | No | No | C++ | Proprietary |
| OWL (superseded by VCL) | Yes | No | No | C++ (Borland C++) | Proprietary |
| Pivot (WTK) | cross-platform | Java | Apache License | ||
| Qt | cross-platform | C++ | LGPL, proprietary | ||
| Rogue Wave Views | Yes | No | Yes | C++ | proprietary |
| Shoes (GUI toolkit) | cross-platform | Ruby | MIT | ||
| Swing | cross-platform | Java | |||
| Tk | Yes | Yes | Yes | C | BSD |
| TnFOX | Yes | Yes | Yes | C++ | LGPL |
| U++ | cross-platform | C++ | BSD | ||
| VCL (supersedes OWL) | Yes | No | No | Object Pascal (Delphi) | Proprietary |
| WTL | Yes | No | No | C++ | Microsoft Public License |
| wxWidgets | cross-platform | C++ | WxWindows license | ||
Note that theX Window System was originally primarily for Unix-like operating systems, but it now runs on Microsoft Windows as well using, for example,Cygwin, so some or all of these toolkits can also be used under Windows.
General
Full-stack framework
Resource-based
No longer developed
| Toolkit | Initial release | Latest release | Main language | Bindings | Tools | License | Pros | Cons | Back-end |
|---|---|---|---|---|---|---|---|---|---|
| ATL,WTL | 2004 | C++ | Visual Studio | not portable | |||||
| AWT | 1995 | Java | portable | ||||||
| CEGUI | 2004 | 0.8.7 (April 28, 2016; 9 years ago (2016-04-28)) [±][6] | C++ | Python,[7]Lua (using tolua++)[8] | CEED[9] | MIT License | Free license, fast, cross-platform, portable, free GUI editing tool | ||
| CLX | C++ | ||||||||
| Elementary | 2007 (EFL: 2001) | 2016 | C | JavaScript, Python, Vala, C++ | editje, edje | LGPL | Portable, stable, fast, finger-friendly | ||
| FLTK | 1998 | 2019 | C++ | Python (pyFLTK), Perl (FLTK.pm), Ruby (Ruby/FLTK), Tcl (Tcl Fltk), Guile (guile-fltk), Eiffel (IFLTK), C (cfltk), Rust (FLTK-rs) | FLUID (Fast Light UI Designer) | LGPL (with an exception that allowsstatic linking) | fast, small enough to static link | limited widget selection | |
| Flutter | 2017 | Dart | BSD | Portable, cross platform, free license, rich widget set | |||||
| FOX | 1997 | C++ | Ruby (FXRuby), Python (FXPy), Eiffel (EiffelFox) | consistent across platforms | non-native look and feel | ||||
| Fyne | 2018 | 2020 (1.3.2) | Go | BSD | consistent across platforms, no runtime dependency | requires OpenGL | |||
| GLUI | C++ | ||||||||
| GNUstep | 1994 | 2017 | Objective-C | Java, Ruby, Scheme | Gorm (computing) | GPL for the apps,LGPL for the libs | Portable, free license | Native on macOS (with Cocoa) | X11,Win32,Wayland |
| GTK | 1997 | 4.6.0[10] (December 30, 2021; 4 years ago (2021-12-30)) [±] | C | C++ (gtkmm), Perl (Gtk2-perl), Ruby (ruby-gtk2), Python (PyGTK),Haskell (Gtk2Hs), Java (java-gnome) (not available for Microsoft Windows), C# (Gtk#), PHP (PHP-GTK), Ada (GTKAda), D (gtkD), FreeBasic (GladeToBac), Go (go-gtk), OCaml (lablgtk), JavaScript (Gjs,Seed (programming)), Fortran (gtk-fortran), Lua (lua-lgi), R (RGtk2) and others viaGTK-server | Glade,GNOME Builder | LGPL | Portable, free license | Partly native only.[11][12] | |
| IUP | 1992 | 2019[13] | C | Lua (IupLua)[14] | LEDC: a compiler forLED | MIT | Portable, lightweight, use the nativeAPI, native look&feel, free licence | Non‑Unicode (only plain ASCII)[15] | |
| Juce | 2004 | C++ | Jucer | GPL, commercial | Cross-platform, with additional audio plug-in wrapping tools (VST,RTAS,AAX etc.) | The free version has a splash screen. | |||
| MFC,WinAPI | 1992 | C++ | Visual Studio | not portable (butWine implements it forX Window) | |||||
| Motif,Lesstif | 1980s | C | BX Pro | ||||||
| Qt | 1995 | 6.5 LTS[16] (3 April 2023; 2 years ago (2023-04-03)) [±] | C++ | Ruby (QtRuby), Python (PyQt,PySide,PythonQt), Ada (QtAda), c# (Qyoto), Java (Qt Jambi), Pascal (FreePascal Qt4), Perl (Perl Qt4), PHP(PHP-Qt),Haskell (Qt Haskell), Lua (lqt,QtLua), Dao (DaoQt), Tcl (qtcl), Common Lisp (CommonQt), D (QtD), Harbour (hbqt) | Qt Designer,Qt Creator | GPL,LGPL.[17] | Portable, rich widget set, GUI builder, free license, stableAPI | Partially native only.[18][19][20] | |
| Shoes (GUI toolkit) | 2007 | 2010 | Ruby | MIT license/Open source | Simplicity, ease of use | ||||
| Swing | 1996 | Java | Eclipse, NetBeans | GPL forOpenJDK | Portable (Java), advanced widgets, GUI builders | ||||
| JavaFX | 2008 | 2022 | Java | NetBeans, Scene Builder | GPL | ||||
| SWT | Java | D (DWT) | Eclipse | portable | |||||
| Tk | 1991 | 2025 | C, Tcl | Ruby (RubyTk), Python (Tkinter), Perl (Perl/Tk), Ada (TASH), Common Lisp (LTk), Erlang (etk), ... | | BSD | very portable, many language bindings | |||
| U++ | 2004 | 2022 | C++ | theIDE | BSD | portable, NTL, free license | Underdeveloped on android | ||
| VCL | Delphi | ||||||||
| Windows Forms | CLI languages | CLI languages | Expression, Visual Studio | portability issues, no MVC | |||||
| WPF,XAML,Silverlight | 2007 | CLI languages | CLI languages | Expression, Visual Studio | Portability issues | ||||
| wxWidgets | 1992 | 3.3.1 (21 July 2025; 6 months ago (2025-07-21) | C++ | C++ (native), Ruby (wxRuby), Python (wxPython), Perl (wxPerl), Java (wxJava,jwx!), Lua (wxLua), Tcl(wxTCL), JavaScript (GLUEscript), Smalltalk (wxSqueak), Erlang (wxErlang),Haskell (wxHaskell), C (wxC), D (wxD),.NET framework (wxNet), Common Lisp (wxCL), Basic (wxBasic), BlitzMax (wxMax), Euphoria (wxEuphoria), Ada (wxAda), Pike (wxPike) | VisualWx, Boa Constructor, PythonCard, Spe, XRCed,wxGlade,wxFormBuilder, DialogBlocks ($), wxDesigner ($) | wxWindows License | Portable, rich widget set, free licence, semantic similarities to MFC make migration easy. | ||
| Xaw,Athena | 1983 | 1.0.13[22] | C | MIT X11 | |||||
| XUL | XML, JavaScript | portable | |||||||
| XVT | 1989 | 2010 | C and C++ | Design for C and architect for C++ | Proprietary | Cross-platform, rich widget set, C and C++ GUI builders, very stable | |||
| Toolkit | Initial release | Latest release | Main language | Bindings | Tools | License | Pros | Cons | Back-end |
Qt uses the native graphics APIs of each platform it supports, taking full advantage of system resources and ensuring that applications have native look and feel.
Qt's built-in widgets use [QStyle] to perform nearly all of their drawing, ensuring that they look exactly like the equivalent native widgets.