Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

List of widget toolkits

From Wikipedia, the free encyclopedia

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.

Low-level widget toolkits

[edit]

Integrated in the operating system

[edit]
  • Mac OS X usesCocoa. Mac OS 9 and Mac OS X used to useCarbon for32-bit applications.
  • TheWindows API used inMicrosoft Windows. Microsoft had the graphics functions integrated in the kernel until 2006[1]
  • TheHaiku operating system uses an extended and modernised version of theBe API that was used by its predecessorBeOS. Haiku is expected to drop binary and source compatibility with BeOS at some future time, which will result in a Haiku API.

As a separate layer on top of the operating system

[edit]
  • TheX Window System contains primitive building blocks, calledXt or "Intrinsics", but they are mostly only used by older toolkits such as:OLIT,Motif andXaw. Most contemporary toolkits, such asGTK orQt, bypass them and useXlib orXCB directly.
  • TheAmiga OSIntuition was formerly present in the AmigaKickstart ROM and integrated itself with a medium-high level widget library which invoked theWorkbench Amiga nativeGUI. Since Amiga OS 2.0, Intuition.library became disk based and object oriented. Also Workbench.library and Icon.library became disk based, and could be replaced with similar third-party solutions.
  • Since 2005, Microsoft has taken the graphics system out of Windows' kernel.[2]

High-level widget toolkits

[edit]
Widget toolkit comparison table
Toolkit nameWindowsmacOSUnix-likeProgramming languageLicense
AWTcross-platformJava
CEGUIYesYesYesC++MIT
CocoaPartialYesNoObjective-CProprietary
ElementaryYesYesYesCLGPL,BSD
FLTKYesYesYesC++LGPL
Fox toolkitYesNoYesC++LGPL
Fynecross-platformGoBSD
GNUstepYesYesYesObjective-CLGPL
GTKYesYesYesCLGPL
Kivycross-platformPythonMIT
LCLYesYesYesObject Pascal (Free Pascal)LGPL
IUPYesNoYesCMIT
Jucecross-platformC++GPL, proprietary
LessTifNoNoYesCLGPL
MotifNoNoYesCLGPL
MFCYesNoNoC++Proprietary
OWL (superseded by VCL)YesNoNoC++ (Borland C++)Proprietary
Pivot (WTK)cross-platformJavaApache License
Qtcross-platformC++LGPL, proprietary
Rogue Wave ViewsYesNoYesC++proprietary
Shoes (GUI toolkit)cross-platformRubyMIT
Swingcross-platformJava
TkYesYesYesCBSD
TnFOXYesYesYesC++LGPL
U++cross-platformC++BSD
VCL (supersedes OWL)YesNoNoObject Pascal (Delphi)Proprietary
WTLYesNoNoC++Microsoft Public License
wxWidgetscross-platformC++WxWindows license

OS dependent

[edit]

OnAmiga

[edit]
  • BOOPSI (Basic Object Oriented Programming System for Intuition) was introduced with OS 2.0 and enhanced Intuition with a system of classes in which every class represents a single widget or describes an interface event. This led to an evolution in which third-party developers each realised their own personal systems of classes.
  • MUI: object-oriented GUI toolkit and the official toolkit forMorphOS.
  • ReAction: object-oriented GUI toolkit and the official toolkit forAmigaOS.
  • Zune (GUI toolkit) is an open source clone of MUI and the official toolkit forAROS.

OnmacOS

[edit]

OnMicrosoft Windows

[edit]

OnUnix, under the X Window System

[edit]

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.

Cross-platform

[edit]

Based onC (includingbindings to other languages)

[edit]

Based onC++ (includingbindings to other languages)

[edit]

Based onPython

[edit]
  • Tkinter,open source (BSD) is a Python binding to theTk GUI toolkit. Tkinter is included with standard GNU/Linux, Microsoft Windows and macOS installs of Python.
  • Kivy,open source (MIT) is a modern library for rapid development of applications that make use of innovative user interfaces, such as multi-touch apps. Fully written in Python with additional speed ups inCython.
  • PySide,open source (LGPL) is a Python binding of the cross-platform GUI toolkitQt developed byThe Qt Company, as part of the Qt for Python project.
  • PyQt,open source (GPL and commercial) is another Python binding of the cross-platform GUI toolkitQt developed by Riverbank Computing.
  • PyGTK,open source (LGPL) is a set of Python wrappers for the GTK graphical user interface library.
  • wxPython,open source (wxWindows License) is a wrapper for the cross-platform GUI APIwxWidgets for the Python programming language.

Based onFlash

[edit]
  • Adobe Flash allows creating widgets running in most web browsers and in several mobile phones.
  • Adobe Flex provides high-level widgets for building web user interfaces. Flash widgets can be used in Flex.
  • Flash and Flex widgets will run without a web browser in theAdobe AIR runtime environment.
  • Adobe AIR allow the creation ofrich Internet applications based upon Flash

Based onGo

[edit]
  • Fyne,open source (BSD) is inspired by the principles of Material Design to create applications that look and behave consistently across Windows, macOS, Linux, BSD, Android and iOS.

Based onXML

[edit]

Based onJavaScript

[edit]
Main article:JavaScript library

General

RIAs

Full-stack framework

Resource-based

No longer developed

  • YUI (Yahoo! User Interface Library)

Based onSVG

[edit]
  • Raphaël is a JavaScript toolkit for SVG interfaces and animations

Based onC#

[edit]

Based onJava

[edit]
  • TheAbstract Window Toolkit (AWT) isSun Microsystems' original widget toolkit for Java applications. It typically uses another toolkit on each platform on which it runs.
  • Swing is a richer widget toolkit supported sinceJ2SE 1.2 as a replacement for AWT widgets. Swing is a lightweight toolkit, meaning it does not rely on native widgets.
  • Apache Pivot is an open-source platform for building rich web applications in Java or any JVM-compatible language, and relies on the WTK widget toolkit.
  • JavaFX andFXML.
  • TheStandard Widget Toolkit (SWT) is a native widget toolkit for Java that was developed as part of theEclipse project. SWT uses a standard toolkit for the running platform (such as the Windows API, macOS Cocoa, or GTK) underneath.
  • Codename One originally designed as a cross platform mobile toolkit it later expanded to support desktop applications both through JavaSE and via a JavaScript pipeline through browsers
  • java-gnome provides bindings to theGTK toolkit and other libraries of theGNOME desktop environment
  • Qt Jambi, the official Java binding toQt from Trolltech. The commercial support and development has stopped[5]
  • ZK - A Java Web framework for building rich Ajax and mobile applications

Based onObject Pascal

[edit]
  • FireMonkey or FMX is a cross-platform widget and graphics library distributed withDelphi andC++Builder since version XE2 in 2011. It has bindings for C++ through C++Builder, and supports Windows, macOS, iOS, Android, and most recently Linux. FireMonkey supports platform-native widgets, such as a native edit control, and custom widgets that are styled to look native on a target operating system. Its graphics are GPU-accelerated and it supports styling, and mixing its own implementation controls with native system controls, which lets apps use native behaviour where it's important (for example, forIME text input.)
  • IP Pascal uses a graphics library built on top of standard language constructs. Also unusual for being a procedural toolkit that is cross-platform (no callbacks or other tricks), and is completely upward compatible with standard serial input and output paradigms. Completely standard programs with serial output can be run and extended with graphical constructs.
  • LazarusLCL (forPascal,Object Pascal andDelphi viaFree Pascal compiler), a class library wrappingGTK+ 1.2–2.x, and the Windows API (Carbon, Windows CE and Qt4 support are all in development).
  • fpGUI is created with theFree Pascal compiler. It doesn't rely on any large 3rdParty libraries and currently runs on Linux, Windows, Windows CE, and Mac (via X11). A Carbon (macOS) port is underway.
  • CLX (Component Library for Cross-platform) was used withBorland's (nowEmbarcadero's)Delphi,C++ Builder, andKylix, for producing cross-platform applications between Windows and Linux. It was based onQt, wrapped in such a way that its programming interface was similar to that of theVCL toolkit. It is no longer maintained and distributed, and has been replaced withFireMonkey, a newer toolkit also supporting more platforms, since 2011.

Based onObjective-C

[edit]

Based onDart

[edit]

Based onSwift

[edit]

Based onRuby

[edit]

Not yet categorised

[edit]

Comparison of widget toolkits

[edit]
ToolkitInitial releaseLatest releaseMain languageBindingsToolsLicenseProsConsBack-end
ATL,WTL2004C++Visual Studionot portable
AWT1995Javaportable
CEGUI20040.8.7 (April 28, 2016; 9 years ago (2016-04-28)) [±][6]C++Python,[7]Lua (using tolua++)[8]CEED[9]MIT LicenseFree license, fast, cross-platform, portable, free GUI editing tool
CLXC++
Elementary2007 (EFL: 2001)2016CJavaScript, Python, Vala, C++editje, edjeLGPLPortable, stable, fast, finger-friendly
FLTK19982019C++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 linklimited widget selection
Flutter2017DartBSDPortable, cross platform, free license, rich widget set
FOX1997C++Ruby (FXRuby), Python (FXPy), Eiffel (EiffelFox)consistent across platformsnon-native look and feel
Fyne20182020 (1.3.2)GoBSDconsistent across platforms, no runtime dependencyrequires OpenGL
GLUIC++
GNUstep19942017Objective-CJava, Ruby, SchemeGorm (computing)GPL for the apps,LGPL for the libsPortable, free licenseNative on macOS (with Cocoa)X11,Win32,Wayland
GTK19974.6.0[10] (December 30, 2021; 4 years ago (2021-12-30)) [±]CC++ (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-serverGlade,GNOME BuilderLGPLPortable, free licensePartly native only.[11][12]
IUP19922019[13]CLua (IupLua)[14]LEDC: a compiler forLEDMITPortable, lightweight, use the nativeAPI, native look&feel, free licenceNon‑Unicode (only plain ASCII)[15]
Juce2004C++JucerGPL, commercialCross-platform, with additional audio plug-in wrapping tools (VST,RTAS,AAX etc.)The free version has a splash screen.
MFC,WinAPI1992C++Visual Studionot portable (butWine implements it forX Window)
Motif,Lesstif1980sCBX Pro
Qt19956.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 CreatorGPL,LGPL.[17]Portable, rich widget set, GUI builder, free license, stableAPIPartially native only.[18][19][20]
Shoes (GUI toolkit)20072010RubyMIT license/Open sourceSimplicity, ease of use
Swing1996JavaEclipse, NetBeansGPL forOpenJDKPortable (Java), advanced widgets, GUI builders
JavaFX20082022JavaNetBeans, Scene BuilderGPL
SWTJavaD (DWT)Eclipseportable
Tk19912025C, TclRuby (RubyTk), Python (Tkinter), Perl (Perl/Tk), Ada (TASH), Common Lisp (LTk), Erlang (etk), ... |BSDvery portable, many language bindings
U++20042022C++theIDEBSDportable, NTL, free licenseUnderdeveloped on android
VCLDelphi
Windows FormsCLI languagesCLI languagesExpression, Visual Studioportability issues, no MVC
WPF,XAML,Silverlight2007CLI languagesCLI languagesExpression, Visual StudioPortability issues
wxWidgets19923.3.1 (21 July 2025; 6 months ago (2025-07-21)

[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 LicensePortable, rich widget set, free licence, semantic similarities to MFC make migration easy.
Xaw,Athena19831.0.13[22]CMIT X11
XULXML, JavaScriptportable
XVT19892010C and C++Design for C and architect for C++ProprietaryCross-platform, rich widget set, C and C++ GUI builders, very stable
ToolkitInitial releaseLatest releaseMain languageBindingsToolsLicenseProsConsBack-end

See also

[edit]

References

[edit]
  1. ^Microsoft: MS Windows NT Kernel-mode User
  2. ^Techworld: Microsoft to move graphics outside OS kernel
  3. ^Pacheco, Teixera; Xavier, Steve (2001).Borland Delphi 6 Developer's Guide. Sams Publishing. p. 382.ISBN 0-672-32115-7.
  4. ^This version provides the coreAPI of the.NET Framework2.0, but its implementation of this API is still incomplete.
  5. ^Qt Software to discontinue Qt Jambi after 4.5 releaseArchived 26 July 2009 at theWayback Machine
  6. ^https://github.com/cegui/cegui/releases/tag/v0-8-7
  7. ^"PyCEGUI - CEGUI Wiki - Crazy Eddie's GUI System (Open Source)".
  8. ^"Extending your Lua Interface - CEGUI Wiki - Crazy Eddie's GUI System (Open Source)".
  9. ^"CEED - CEGUI Wiki - Crazy Eddie's GUI System (Open Source)".
  10. ^https://gitlab.gnome.org/GNOME/gtk/-/tags/4.6.0
  11. ^Migrating to client-side windowsArchived 27 April 2011 at theWayback Machine: "GDK looks for the GDK_NATIVE_WINDOWS environment variable and makes all windows native if it is set. It also tries to be more compatible with the way prior versions worked in some other ways."
  12. ^Coding Horror: Non-Native UI Sucks: "[…] has a cross-platform UI based on GTK, which produces predictably bland, least-common-denominator results:"
  13. ^"IUP - Browse /3.28 at SourceForge.net".
  14. ^"IUP - Portable User Interface".
  15. ^Comparing IUP with Other Interface Toolkits: "[…] it does not have support for Unicode characters."
  16. ^"Qt 6.5 Release".www.qt.io. The Qt Company. Retrieved20 December 2023.
  17. ^Nyström, Sebastian (14 January 2009)."Nokia to license Qt under LGPL". Archived fromthe original on 11 November 2013.
  18. ^WxWidgets Compared To Other Toolkits: "Qt doesn't have true native ports like wxWidgets does. Qt does not use system provided widgets, but emulates it with themes. What we mean by this is that even though Qt draws them quite realistically, Qt draws its own widgets on each platform."
  19. ^"Qt Modular Class Library". Digia. Archived fromthe original on 1 November 2013.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.
  20. ^"The Qt 4 Style API".The Qt Company.Qt's built-in widgets use [QStyle] to perform nearly all of their drawing, ensuring that they look exactly like the equivalent native widgets.
  21. ^"wxWidgets: 3.3.1 Released". 9 September 2024. Retrieved13 September 2024.
  22. ^Alan Coopersmith (30 April 2015)."[ANNOUNCE] libXaw 1.0.13".xorg-announce@lists.x.org (Mailing list). Retrieved1 July 2020.
Low-level platform-specific
OnAmigaOS
OnClassic Mac OS,macOS
OnWindows
OnUnix
OnBeOS,Haiku
OnAndroid
CLI
Low Level Cross-platform
CLI
C
Java
High-level, platform-specific
OnAmigaOS
OnClassic Mac OS,macOS
Object Pascal
Objective-C,Swift
C++
CLI
OnWindows
CLI
C++
Object Pascal
OnUnix andX11
High-level, cross-platform
C
C++
Objective-C
CLI
Adobe Flash
Go
Haskell
Java
JavaScript
Common Lisp
Lua
Pascal
Object Pascal
Perl
PHP
Python
Ruby
Tcl
XML
shell
Dart
Retrieved from "https://en.wikipedia.org/w/index.php?title=List_of_widget_toolkits&oldid=1333191746"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp