Liste der Widget-Toolkits - List of widget toolkits

Dieser Artikel enthält eine Liste von Widget-Toolkits (auch als GUI-Frameworks bekannt ), die zum Erstellen der grafischen Benutzeroberfläche (GUI) von Programmen verwendet werden, geordnet nach ihren Beziehungen zu verschiedenen Betriebssystemen .

Low-Level-Widget-Toolkits

Im Betriebssystem integriert

  • OS X verwendet Kakao . Mac OS9 und OS X verwenden Carbon für 32-Bit-Anwendungen.
  • Die in Microsoft Windows verwendete Windows-API . Bis 2006 hatte Microsoft die Grafikfunktionen im Kernel integriert
  • Das Haiku- Betriebssystem verwendet eine erweiterte und modernisierte Version der Be-API , die von seinem spirituellen Vorgänger BeOS verwendet wurde . Es wird erwartet, dass Haiku Inc. irgendwann in der Zukunft die Binär- und Quellkompatibilität mit dem BeOS aufgeben wird, was zu einer eigenen Haiku-API führen wird.

Als separate Schicht über dem Betriebssystem

  • Das X Window System enthält primitive Bausteine, genannt Xt oder "Intrinsics", aber sie werden meist nur von älteren Toolkits verwendet wie: OLIT , Motif und Xaw . Die meisten modernen Toolkits wie GTK oder Qt umgehen sie und verwenden Xlib oder XCB direkt.
  • Die Amiga OS Intuition war früher im Amiga Kickstart ROM vorhanden und integriert sich selbst in eine mittelhohe Widget-Bibliothek, die die native Workbench- Amiga- GUI aufruft . Seit Amiga OS 2.0 wurde Intuition.library festplattenbasiert und objektorientiert. Auch Workbench.library und Icon.library wurden festplattenbasiert und konnten durch ähnliche Lösungen von Drittanbietern ersetzt werden.
  • Seit 2005 hat Microsoft das Grafiksystem aus dem Windows-Kernel herausgenommen.

High-Level-Widget-Toolkits

Vergleichstabelle für Widget-Toolkits
Toolkit-Name Fenster OS X Unix-ähnlich Programmiersprache Lizenz
AWT plattformübergreifend Java
CEGUI Jawohl Jawohl Jawohl C++ MIT
Kakao Nein Jawohl Nein Ziel c Proprietär
Grundstufe Jawohl Jawohl Jawohl C LGPL , BSD
FLTK Jawohl Jawohl Jawohl C++ LGPL
Fox-Toolkit Jawohl Nein Jawohl C++ LGPL
Fyne plattformübergreifend gehen BSD
GNUstep Jawohl Jawohl Jawohl Ziel c LGPL
GTK Jawohl Jawohl Jawohl C LGPL
Kivy plattformübergreifend Python MIT
LCL Jawohl Jawohl Jawohl Objektpascal ( Free Pascal ) LGPL
IUP Jawohl Nein Jawohl C MIT
Saft Jawohl Jawohl Jawohl C++ GPL , proprietär
WenigerTif Nein Nein Jawohl C LGPL
MFC Jawohl Nein Nein C++ Proprietär
Nana C++ Jawohl Nein Jawohl C++ Boost- Lizenz
OWL (ersetzt durch VCL) Jawohl Nein Nein C++ ( Borland C++ ) Proprietär
Drehpunkt (WTK) plattformübergreifend Java Apache-Lizenz
Qt Jawohl Jawohl Jawohl C++ LGPL , proprietär
Rogue Wave- Ansichten Jawohl Nein Jawohl C++ proprietär
Schuhe (GUI-Toolkit) plattformübergreifend Rubin MIT
Schwingen plattformübergreifend Java
Tk Jawohl Jawohl Jawohl C BSD
TnFOX Jawohl Jawohl Jawohl C++ LGPL
Ultimativ++ Jawohl Jawohl Jawohl C++ BSD
VCL (ersetzt OWL) Jawohl Nein Nein Objektpascal ( Delphi ) Proprietär
WTL Jawohl Nein Nein C++ Öffentliche Microsoft-Lizenz
wxWidgets Jawohl Jawohl Jawohl C++ WxWindows-Lizenz

Betriebssystem abhängig

Auf Amiga

  • BOOPSI (Basic Object Oriented Programming System for Intuition) wurde mit OS 2.0 eingeführt und Intuition um ein Klassensystem erweitert, bei dem jede Klasse ein einzelnes Widget darstellt oder ein Schnittstellenereignis beschreibt. Dies führte zu einer Entwicklung, bei der Drittentwickler jeweils ihre eigenen persönlichen Klassensysteme realisierten.
  • MUI : objektorientiertes GUI-Toolkit und das offizielle Toolkit für MorphOS .
  • ReAction : Objektorientiertes GUI-Toolkit und das offizielle Toolkit für AmigaOS .
  • Zune (GUI-Toolkit) ist ein Open-Source-Klon von MUI und das offizielle Toolkit für AROS .

Auf Macintosh

Unter Microsoft Windows

Unter Unix unter dem X Window System

Beachten Sie, dass das X Window System ursprünglich in erster Linie für Unix-ähnliche Betriebssysteme gedacht war, jetzt aber auch unter Microsoft Windows läuft, beispielsweise unter Verwendung von Cygwin , sodass einige oder alle dieser Toolkits auch unter Windows verwendet werden können.

Plattformübergreifend

Basierend auf C (einschließlich Bindungen zu anderen Sprachen)

  • Elementary , Open Source ( LGPL ), ein Teil der Enlightenment Foundation Libraries , einer schnellen, stabilen und skalierbaren Bibliothek, mit der sowohl umfangreiche als auch schnelle Anwendungen erstellt werden können, die von alltäglichen Desktop-Computern bis hin zu kleinen PDAs und Set-Top-Boxen.
  • GTK , Open Source ( LGPL ), hauptsächlich für das X Window System, portiert und emuliert unter anderen Plattformen; in den Desktop-Umgebungen GNOME , Rox , LXDE und Xfce verwendet . Der Windows-Port unterstützt native Widgets.
  • IUP , Open Source ( MIT ), ein minimalistisches GUI-Toolkit in ANSI C für Windows, UNIX und Linux.
  • Tk , Open Source (BSD-Stil), ein Widget-Set, auf das von Tcl und anderen High-Level-Skriptsprachen zugegriffen wird (Schnittstelle in Python als Tkinter ).
  • XForms , die Formularbibliothek für X
  • XVT , erweiterbares virtuelles Toolkit

Basierend auf C++ (einschließlich Bindungen zu anderen Sprachen)

Basierend auf OpenGL

  • Clutter (LGPL) (in C) ist eine Open-Source-Softwarebibliothek zum Erstellen schneller, visuell ansprechender und animierter grafischer Benutzeroberflächen.

Basierend auf Flash

  • Adobe Flash ermöglicht das Erstellen von Widgets, die in den meisten Webbrowsern und auf mehreren Mobiltelefonen ausgeführt werden.
  • Adobe Flex bietet High-Level-Widgets zum Erstellen von Web-Benutzeroberflächen. Flash-Widgets können in Flex verwendet werden.
  • Flash- und Flex-Widgets werden ohne Webbrowser in der Adobe AIR- Laufzeitumgebung ausgeführt.

Basierend auf Go

  • Fyne , Open Source ( BSD ) ist von den Prinzipien des Material Design inspiriert, um Anwendungen zu erstellen, die unter Windows, macOS, Linux, BSD, Android und iOS konsistent aussehen und sich verhalten.

Basierend auf XML

Basierend auf JavaScript

Allgemein

RIAs

Full-Stack-Framework

Ressourcenbasiert

Nicht mehr entwickelt

  • YUI (Yahoo!-Benutzeroberflächenbibliothek)

Basierend auf SVG

  • Raphaël ist ein JavaScript-Toolkit für SVG-Schnittstellen und Animationen

Basierend auf C#

Basierend auf Java

  • Das Abstract Window Toolkit (AWT) ist das ursprüngliche Widget-Toolkit von Sun Microsystems für Java-Anwendungen. Es verwendet normalerweise ein anderes Toolkit auf jeder Plattform, auf der es ausgeführt wird.
  • Swing ist ein umfangreicheres Widget-Toolkit, das seit J2SE 1.2 als Ersatz für AWT-Widgets unterstützt wird. Swing ist ein leichtgewichtiges Toolkit, das heißt, es verlässt sich nicht auf native Widgets.
  • Apache Pivot ist eine Open-Source-Plattform zum Erstellen von Rich-Webanwendungen in Java oder jeder JVM-kompatiblen Sprache und basiert auf dem WTK-Widget-Toolkit.
  • JavaFX und FXML .
  • Das Standard Widget Toolkit (SWT) ist ein natives Widget-Toolkit für Java, das im Rahmen des Eclipse- Projekts entwickelt wurde. SWT verwendet ein Standard-Toolkit für die laufende Plattform (wie die Windows-API, OS X Cocoa oder GTK) darunter.
  • Codename One wurde ursprünglich als plattformübergreifendes mobiles Toolkit entwickelt und später erweitert, um Desktop-Anwendungen sowohl über JavaSE als auch über eine JavaScript-Pipeline über Browser zu unterstützen
  • java-gnome bietet Bindungen an das GTK- Toolkit und andere Bibliotheken der GNOME- Desktop-Umgebung
  • Qt Jambi , die offizielle Java-Anbindung zu Qt von Trolltech. Die kommerzielle Unterstützung und Entwicklung wurde eingestellt

Basierend auf Object Pascal

  • FireMonkey oder FMX ist eine plattformübergreifende Widget- und Grafikbibliothek, die seit Version XE2 im Jahr 2011 mit Delphi und C++Builder vertrieben wird. Sie verfügt über Bindungen für C++ bis C++Builder und unterstützt Windows, macOS, iOS, Android und neuerdings Linux. FireMonkey unterstützt sowohl plattformnative Widgets, z. B. ein natives Bearbeitungssteuerelement, als auch benutzerdefinierte Widgets, die so gestaltet sind, dass sie auf dem Zielbetriebssystem nativ aussehen. Seine Grafiken sind GPU-beschleunigt und unterstützt das Styling und das Mischen seiner eigenen Implementierungssteuerelemente mit nativen Systemsteuerelementen, wodurch Apps natives Verhalten verwenden können, wo es wichtig ist (z. B. für die IME- Texteingabe).
  • IP Pascal verwendet eine Grafikbibliothek, die auf Standardsprachkonstrukten aufgebaut ist. Auch ungewöhnlich, da es sich um ein prozedurales Toolkit handelt, das plattformübergreifend ist (keine Rückrufe oder andere Tricks) und vollständig aufwärtskompatibel mit standardmäßigen seriellen Eingabe- und Ausgabeparadigmen ist. Es können ganz Standardprogramme mit serieller Ausgabe ausgeführt und mit grafischen Konstrukten erweitert werden.
  • Lazarus LCL (für Pascal , Object Pascal und Delphi über Free Pascal Compiler), eine Klassenbibliothek, die GTK+ 1.2, Gtk+ 2.x und die Windows-API umschließt (Carbon, Windows CE und Qt4-Unterstützung sind alle in Entwicklung).
  • fpGUI wird mit dem Free Pascal- Compiler erstellt. Es ist nicht auf große 3rdParty-Bibliotheken angewiesen und läuft derzeit auf Linux, Windows, Windows CE und Mac (über X11). Ein Carbon-Port (OS X) ist in Arbeit.
  • CLX (Component Library for Cross-Platform) wurde mit Borlands (jetzt Embarcadero ) Delphi , C++ Builder und Kylix verwendet , um plattformübergreifende Anwendungen zwischen Windows und Linux zu erstellen. Es basierte auf Qt , so verpackt, dass seine Programmierschnittstelle der des VCL- Toolkits ähnelte . Es wird nicht mehr gewartet und vertrieben und wird seit 2011 durch FireMonkey ersetzt , ein neueres Toolkit, das auch mehr Plattformen unterstützt.

Basierend auf Ziel-C

Basierend auf Ruby

  • Shoes (GUI-Toolkit) ist ein plattformübergreifendes Framework für die Entwicklung grafischer Benutzeroberflächen.

Noch nicht kategorisiert

Vergleich von Widget-Toolkits

Werkzeugkasten Erstveröffentlichung Neueste Erscheinung Muttersprache Bindungen Werkzeuge Lizenz Vorteile Nachteile Backend
ATL , WTL 2004 C++ Visual Studio nicht tragbar
AWT 1995 Java tragbar
CEGUI 2004 0.8.7 (28. April 2016 ; vor 5 Jahren ) [±] ( 2016-04-28 ) C++ Python , Lua (mit tolua++) CEED MIT-Lizenz Kostenlose Lizenz, schnelles, plattformübergreifendes, tragbares, kostenloses GUI-Bearbeitungstool
Unordnung 2006 C Perl, Python, C#, C++, Vala, Ruby LGPL GTK- und WebKit- Einbettung
CLX C++
Grundstufe 2007 ( EFL : 2001) 2016 C JavaScript, Python, Vala, C++ editje, edje LGPL Tragbar, stabil, schnell, fingerfreundlich
FLTK 1998 2019 C++ Python ( pyFLTK ), Perl ( FLTK.pm ), Ruby ( Ruby/FLTK ), Tcl ( Tcl Fltk ), Guile ( guile-fltk ), Eiffel ( IFLTK ) FLUID (Fast Light UI-Designer) LGPL (mit einer Ausnahme, die statisches Verlinken erlaubt ) schnell, klein genug für statischen Link eingeschränkte Widget-Auswahl
Flattern 2017 Pfeil
FUCHS 1997 C++ Ruby ( FXRuby ), Python ( FXPy ), Eiffel ( EiffelFox ) konsistent über Plattformen nicht natives Aussehen und Gefühl
Fyne 2018 2020 (1.3.2) gehen BSD plattformübergreifend konsistent, keine Laufzeitabhängigkeit erfordert OpenGL
GLUI C++
GNUstep 1994 2017 Ziel c Java, Ruby, Schema Gorm (Computer) GPL für die Apps, LGPL für die Libs Tragbare, kostenlose Lizenz Nativ auf macOS (mit Kakao) X11 , Win32 , Wayland
GTK 1997 3.24.4 (21. Januar 2019 ; vor 2 Jahren ) [±] ( 2019-01-21 ) C C++ ( gtkmm ), Perl ( Gtk2-perl ), Ruby ( ruby-gtk2 ), Python ( PyGTK ), Haskell ( Gtk2Hs ), Java ( java-gnome ) (nicht verfügbar für Microsoft Windows), C# ( Gtk# ), PHP ( PHP-GTK ), Ada ( GTKAda ), D ( gtkD ), FreeBasic ( GladeToBac ), Go ( go-gtk ), OCaml ( lablgtk ), JavaScript ( Gjs , Seed (Programmierung) ), Fortran ( gtk-fortran ), Lua ( lua-lgi ), R ( RGtk2 ) und andere über GTK-Server Lichtung LGPL Tragbare, kostenlose Lizenz Teilweise nur heimisch.
IUP 1992 2019 C Lua ( IupLua ) LEDC: ein Compiler für LED MIT Tragbar, leichtgewichtig, verwenden Sie die native API , natives Look&Feel, kostenlose Lizenz Nicht-Unicode (nur einfaches ASCII)
Saft 2004 C++ Jucer GPL , kommerziell Plattformübergreifend, mit zusätzlichen Audio-Plug-In-Wrapping-Tools ( VST , RTAS , AAX etc.)
MFC , WinAPI 1992 C++ Visual Studio nicht portabel (aber Wine implementiert es für X Window )
Motiv , Lesstif 1980er Jahre C BX Pro
Nana C++ 2007 1.7.4 (16. Mai 2020 ; vor 17 Monaten ) [±] ( 2020-05-16 ) C++ VisualStudio, Dev-C++, Code::Blocks, GCC tragbar, leicht, moderner C++-Stil
NWSTK 2020 SuperC(C++ Nex)
Qt 1991 6.1 (6. Mai 2021 ; vor 5 Monaten ) [±] ( 2021-05-06 ) 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-Ersteller GPL , LGPL . Tragbares, umfangreiches Widget-Set, GUI-Builder, kostenlose Lizenz, stabile API Nur teilweise heimisch.
Rogue Wave- Ansichten 1993 2014 (5.8) C++ ivfstudio proprietär portabel (Windows, Unix-ähnlich), gute Unterstützung Werbung
Schuhe (GUI-Toolkit) 2007 2010 Rubin MIT-Lizenz/Open Source Einfachheit, Benutzerfreundlichkeit
Schwingen 1996 Java Eclipse, NetBeans GPL für OpenJDK Portabel (Java), erweiterte Widgets, GUI-Builder
SWT Java D ( DWT ) Finsternis tragbar
Tk 1991 2015 C, Tcl Ruby ( RubyTk ), Python ( Tkinter ), Perl ( Perl/Tk ), Ada ( TASH ), Common Lisp ( LTk ), Erlang ( etk ), ... | BSD sehr portabel, viele Sprachbindungen
Ultimativ++ 2004 2020 C++ TheIDE BSD tragbar, NTL, kostenlose Lizenz
VCF C++ BSD freie Lizenz
VCL Delphi
Windows Forms CLI-Sprachen CLI-Sprachen Ausdruck, Visual Studio Portabilitätsprobleme, kein MVC
WPF , XAML , Silverlight 2007 CLI-Sprachen CLI-Sprachen Ausdruck, Visual Studio Portabilitätsprobleme
wxWidgets 1992 3.0.5 (27. April 2020 ; vor 17 Monaten ( 2020-04-27 )

) [±]

C++ C++ (nativ), 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 ) , Hecht ( wxHecht ) VisualWx, Boa Constructor, PythonCard, Spe, XRCed, wxGlade , wxFormBuilder , DialogBlocks ($), wxDesigner ($) wxWindows-Lizenz Tragbares, umfangreiches Widget-Set, kostenlose Lizenz und semantische Ähnlichkeiten mit MFC machen die Migration einfach.
Xaw , Athena 1983 1.0.13 C MIT X11
XUL XML, JavaScript tragbar
XVT 1989 2010 C und C++ Design für C und Architekt für C++ Proprietär Plattformübergreifend, umfangreiches Widget-Set, C- und C++-GUI-Builder, sehr stabil
Werkzeugkasten Erstveröffentlichung Neueste Erscheinung Muttersprache Bindungen Werkzeuge Lizenz Vorteile Nachteile Backend

Siehe auch

Verweise

Externe Links