GUI-Toolkit
Ein GUI-Toolkit (englisch toolkit ‚Werkzeugsatz‘, auch widget toolkit, widget library oder UX library genannt) ist eine Programmbibliothek, die zur Programmierung grafischer Benutzeroberflächen in Desktop-Anwendungen dient. Ein GUI-Toolkit stellt einen Satz an Steuerelementen (Widgets) zur Verfügung.
Beschreibung
GUI-Toolkits erleichtern einem Programmierer das Erstellen grafischer Benutzeroberflächen, da er sich nicht um das Entwickeln von Widgets oder um die Schnittstelle zur Systemumgebung kümmern muss. So braucht ein Entwickler typische Aufrufe der Plattform nicht selbst zu programmieren, da diese vom GUI-Toolkit bereitgestellt werden.
Darüber hinaus stellen einige GUI-Toolkits auch zusätzliche Programmierwerkzeuge und Hilfsmittel wie Entwicklungsumgebungen bereit, die das Gestalten grafischer Oberflächen und Dialoge vereinfachen. Ein bekanntes Beispiel ist der Designer des Qt-Toolkits.
Viele GUI-Toolkit besitzen eine eigene Rendering-Engine, die für das Zeichnen der Steuerelemente zuständig ist, und einen eigenen Layoutmanager, der für das Anordnen der Elemente zuständig ist. Alternativ wird die darunterliegende Plattform (z. B. das Betriebssystem) für diese Aufgaben herangezogen.
Bekannte GUI-Toolkits
Zu den bekannten GUI-Toolkits gehören:
plattformübergreifend:
- GTK (in Java z. B. via SWT)
- Qt
- wxWidgets
- Tk
- FLTK
- Swing (in Java)
- FireMonkey (FMX, in Delphi)
- Lazarus Component Library (in Free Pascal)
- Flutter
- Microsoft Foundation Classes (MFC)
- Visual Component Library (VCL, in Delphi)
- Win32 (WinAPI)
- Windows Presentation Foundation (WPF)
- Windows Forms (.NET)
Siehe auch
Literatur
- Matthias Fuchs: Vergleich von Cross-Platform GUI-Toolkits: WinForms, GTK+, wxWidgets, Qt, Swing, VDM Verlag Dr. Müller, 2010, ISBN 978-3639251647
- Michael Lauer: Python und GUI-Toolkits, mitp, 2002, ISBN 978-3826608445
Weblinks
Auf dieser Seite verwendete Medien
Autor/Urheber: Qt Development Team, Lizenz: GPL
Screenshot of Qt-Designer 4.3.4
Autor/Urheber: Bagok, Lizenz: CC BY-SA 3.0
Java-Programmiersprache, BorderLayout, GridLayout, FlowLayout