GUI-Toolkits
Wer ein eigenes Programm erstellen möchte, das nicht nur über die Kommandozeile bedienbar ist, sondern eine grafische Benutzeroberfläche (kurz: GUI, Abkürzung für "Graphical User Interface") haben soll, greift zum Erstellen normalerweise auf eine der im folgenden (kurz) vorgestellten Bibliotheken zurück. Diese stellen in der Regel alle Elemente zum Erstellen einer GUI wie Schaltflächen, Eingabefelder, Auswahlfelder, Dialogboxen etc bereit.
Der Umfang an weiteren / zusätzlichen Funktionen variiert teilweise stark zwischen den Bibliotheken, des weiteren gibt es Unterschiede bei der Unterstützung verschiedener Betriebssysteme außerhalb von Linux und auch der Unterstützung von Touchscreens zur Eingabe.
Wer ein Programmierprojekt mit einer GUI angehen möchte, sollte sich von daher zumindest mehrere GUI-Toolkits anschauen und dann das auswählen, was den eigenen Ansprüchen und Anforderungen am besten entspricht.
Die beiden meistgenutzten Bibliotheken sind sicherlich GTK+ und Qt, welche auch von einer Vielzahl von grafischen Programmen in den Ubuntu-Quellen genutzt werden. Die Desktopumgebungen GNOME, Xfce und MATE nutzen ebenfalls das GTK+-Toolkit, während KDE und LXQt auf Qt setzen.
Qt¶
Die erste Version von Qt erschien im Jahr 1995. Das GUI-Toolkit ist dual-Lizensiert, d.h. es gibt sowohl eine Open-Source Lizenz (LGPL) als auch eine kommerzielle Lizenz. Die aktuelle Version von Qt ist 5.x, welche seit Ende 2012 existiert. Es gibt in den Ubuntu-Quellen aber auch noch Pakete und Programme, die auf dem älteren Qt 4.x basieren.
Qt bietet zusätzlich zu den GUI-Elementen umfangreiche weitere Bibliotheken (z.B. zur Datenbankanbindung) und läuft auf allen gängigen Plattformen wie Linux, MacOS, Windows, Android und iOS. Qt ist in C++ geschrieben, es gibt aber Anbindungen 🇬🇧 für viele weitere Programmiersprachen.
weiterführende Links¶
Qt - Wikiartikel zu Qt: Installationshinweise, Entwicklungsumgebungen, Programmbeispiel
Homepage 🇬🇧 von Qt
Qt Resource Center 🇬🇧, umfangreiche Dokumentation zu Qt
Wiki 🇬🇧 zu Qt
Wikipedia Artikel zu Qt
GTK+¶
GTK steht für Gimp Tool Kit, weil der Ursprung des Projekt 1998 die Schaffung einer graphischen Oberfläche für das Grafikprogramm GIMP war. GTK+ ist aber schon lange eine universelle GUI-Bibliothek, mit der sich Programme mit einer grafischen Oberfläche von einfach bis komplex entwickeln lassen. Die Bibliothek steht unter der OpenSource Lizenz LPGL 2.1 🇬🇧.
Die aktuelle Version ist GTK 3.x, welche seit 2011 existiert. In den Ubuntu-Quellen gibt es aber auch noch Pakete, die das ältere GTK 2.x einsetzen. GTK+ kann unter den gängigen Betriebssystemen Linux, Windows und MacOS installiert werden.
GTK+ ist in der Programmiersprache C geschrieben, es gibt aber Anbindungen für eine ganze Reihe weitere Programmiersprache.
weiterführende Links¶
GTK+ - Wikiartikel zur GTK+ Bibliothek
GTK+/Programmierung - Wikiartikel zur Programmierung mit GTK+
Vala - Wikiartikel zur Programmiersprache Vala, welche eine enge Bindung an GObject / GTK+ hat
Homepage 🇬🇧 des GTK+-Projekts
Dokumentation 🇬🇧 zu GTK+
Wikipedia-Artikel zu GTK+
Tk¶
Tk entstand im Jahr 1991 als GUI-Toolkit für die Programmiersprache Tcl, bietet aber auch viele Anbindungen 🇬🇧 für andere Programmiersprachen. Außerhalb von Tcl wird Tk noch im Python-Umfeld recht häufig genutzt, weil Python die Programmierung von grafischen Oberflächen mit Tk direkt unterstützt. Zur Nutzung unter Ubuntu muss dazu das Paket python3-tk (aus den Main-Quellen) installiert werden.
Tk bringt alle notwendigen Elemente und Funktionalitäten zum Erstellen von einfachen und nicht zu komplexen GUIs, für größere Projekte bieten die "größeren" Bibliotheken wie Qt und GTK+ aber mehr Möglichkeiten. Tk steht unter einer eigenen Lizenz 🇬🇧
weiterführende Links¶
Tcl/Tk 🇬🇧 Projektseite
Dokumentation 🇬🇧 zu Tk
Python-Dokumentation zu Tk-Anbindung
wxWidgets¶
Das wxWidgets Toolkit (bis 2004 als wxWindows bekannt) ist eine GUI-Bibliothek, welche seit 1992 entwickelt wird. Neben Linux werden auch MacOS und Windows als Plattform unterstützt. wxWidgets steht unter der wxWindows Lizenz 🇬🇧, welche die Nutzung für Open Source als auch nicht quelloffene Projekte zulässt. Die aktuelle Version ist 3.x, das ältere 2.8 wird aber ebenfalls noch unterstützt.
wxWidgets selbst ist in C++ geschrieben, es gibt aber auch Anbindungen 🇬🇧 für eine ganze Reihe weiterer Programmiersprachen.
weiterführende Links¶
Homepage 🇬🇧 des Projekts
Dokumentation 🇬🇧 zu wxWidget
Wikipedia-Artikel zu wxWidgets
FLTK¶
FLTK (Fast Light Toolkit, gesprochen: "fulltick") ist ein sehr "leichtes" GUI-Toolkit, das alle Elemente zum Erstellen von grafischen Oberflächen bietet, aber ohne extra Klassen für z.B. Strings auskommt. Trotzdem kann man natürlich alles nutzen, was zum Umfang von C++ dazugehört, also auch Strings. Neben Linux unterstützt FLTK auch Windows und MacOS.
FLTK erschien das erste Mal im Jahr 1998, steht unter einer Open Source Lizenz und ist in C++ geschrieben. Es gibt aber auch Anbindungen 🇬🇧 für ein paar weitere Programmiersprachen.
weiterführende Links¶
Homepage 🇬🇧 von FLTK
Dokumentation 🇬🇧 der Bibliothek
Fluid 🇬🇧 - grafischer Editor zum Erstellen von GUIs mit FLTK
Wikipedia-Seite zu FLTK
Erco's FLTK Cheat Page 🇬🇧 - Sehr viele nützliche Programmbeispiele und Tipps.
Electron¶
Electron ist das jüngste Framework der hier vorgestellten, die erste Version erschien 2013. Auch Electron ist Open Source Software und steht unter der MIT-Lizenz 🇬🇧
Technisch unterscheidet es sich in sofern, als das Electron auf Webtechnologien setzt, die Anwendung wird primär in HTML, CSS und JavaScript erstellt. Auch, wenn im Hintergrund das Webframework Node.js und die V8-Engine des Webbrowsers Chrome arbeiten, laufen mit Electron erstellte Programme in einem eigenen Fenster und nicht im Browser. Der Texteditor Atom beispielsweise wurde mit Electron erstellt. Neben Linux läuft Electron auch unter Windows und MacOS.
weiterführende Links¶
Homepage 🇩🇪 des Projekts
Wikipedia-Seite zu Electron
Kivy¶
Kivy ist eine reine Python-Bibliothek, welche in der ersten Version 2011 erschien und unter der MIT 🇬🇧 Open Source Lizenz steht. Ein Schwerpunkt von Kivy ist, dass die GUI auch Touch sowie Multitouch Unterstützung bietet und auf möglichst vielen Plattformen inklusive mobilen Geräten läuft. Kivy unterstützt Linux, Windows, MacOS, Android und iOS und bietet damit zusammen mit Qt die breiteste Unterstützung verschiedener Betriebssystem.
weiterführende Links¶
Homepage 🇬🇧 des Kivy-Projekts
Wiki 🇬🇧 mit vielen Beispielen
englischsprachige Wikipediaseite zu Kivy
FOX¶
Bei FOX handelt es sich um ein Toolkit, das in C++ geschrieben ist. Die Zielsetzung 🇬🇧 liegt hier auf möglichst großer Plattformunabhängigkeit, guter Leistung und leichter Erweiterbarkeit. FOX unterstützt außer Linux auch einige andere UNIX-Betriebsysteme, als auch Windows. Anbindungen für andere Programmiersprachen außer C++ gibt es aktuell nicht.
weiterführende Links¶
Homepage 🇬🇧 des Projekts
Dokumenation 🇬🇧 zu FOX
englischsprachiger Wikipedia-Artikel zum FOX Toolkit
Links¶
Programmierung Übersichtsartikel