Dies ist eine alte Version des Dokuments!
GUI ist die Abkürzung für (engl) Graphical User Interface was so viel heißt wie grafische Benutzeroberfläche.
„Die Programme, die ich geschrieben habe öffnen sich immer in einem schwarzen (Windows, cmd) oder weißen (Linux, Shell) Fenster. Die Programme, die ich benutze sehen ja auch anders aus. Was kann ich tun, damit meine Programme auch eine GUI bekommen?“
Ihr könnt eine eigene GUI für ein Programm erstellen. Dazu benötigt ihr zusätzliche Bibliotheken mit deren Funktionen ihr Benutzeroberflächen erstellen könnt.
Hier seht ihr einen (kleinen) Teil der verschiedenen Bibliotheken:
Um das Programm zu kompilieren müssen die Pfade der zusätzlichen Bibliotheken dem Linker mitgeteilt werden. Dies kann über die Entwicklungsumgebung oder durch Kommandozeilenparameter geschehen.
Das GIMP-Toolkit ist eine freie Bibliothek (unter der LGPL) , mit der ihr grafische Benutzeroberflächen (GUI) in der Programmiersprache C erstellen könnt. Sie wurde anfangs für das freie Bildbearbeitungsprogramm GIMP geschrieben.
Allerdings sind auch die GUIs vieler anderer Programme mit GTK+ erstellt worden, zum Beispiel die freien Desktopumgebungen GNOME oder Xfce, sowie viele andere Anwendungen.
Für GTK+, welches für C geschrieben wurde, existieren Bindings (Anbindungen) an andere Programmiersprache, wie C++ (gtkmm), Java (java-gnome), Python (PyGTK), C# (GTK#, im Mono-Projekt) und mehr.
Qt ist eine vom norwegischen Unternehmen Trolltech, welches 2008 von Nokia aufgekauft wurde, entwickelte C++ Klassenbibliothek für die plattformübergreifende Erstellung von grafischen Benutzeroberflächen. Zum Beispiel wurde die Desktopumgebung KDE mit Qt geschrieben, wie auch viele Programme, die für KDE entwickelt worden sind.
Qt steht unter einem dualen Lizenzsystem, d. h. dass Qt nur dann frei verwendet werden kann, wenn die Quelltexte offen gelegt werden.
Auch für Qt gibt es Bindings an andere Programmiersprachen, unter anderem Python, Ruby, C# und Java.
wxWidgets, früher bekannt als wxWindows, ist eine C++ Bibliothek, mit der ihr GUIs erstellen könnt. Dabei versucht wxWidget sich möglichst als Wrapper für die native GUI des Betriebssystems darzustellen, d.h. wxWidgets benutzt keine eigene Benutzeroberfläche, sondern benutzt die des Betriebssystems, auf dem das Programm kompiliert und ausgeführt wird.
wxWidgets ist eine quelloffene Bibliothek und steht unter einer leicht modifizierten LGPL-Lizenz die es erlaubt, die Bibliothek für proprietäre und freie Anwendungen benutzen zu können.
Beispiele für Programme, die mit wxWidgets erstellt worden, sind der Audioeditor Audacity oder die freie Entwicklungsumgebung Code::Blocks.
Auch für wxWidgets existieren Bindings an andere Programmiersprachen, darunter Python (wxPython), Perl (wxPerl) und Ruby (wxRuby).