Seitenleiste

Community

GUIs

Einstieg

Plattformübergreifend

Konsolenbasiert

Dies ist eine alte Version des Dokuments!


GUI

GUI ist die Abkürzung für (engl) Graphical User Interface was so viel heißt wie grafische Benutzeroberfläche.

Was ist das?

Eine Benutzeroberfläche macht ein Programm leichter bedienbar und sieht auch schöner aus.

Das Problem

„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?“

Die Lösung

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.

Bibliotheken

Hier seht ihr einen (kleinen) Teil der verschiedenen Bibliotheken:

Plattformübergreifend

Linux/UNIX

  • KDE

Windows

  • MFC

Kompilieren

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.

Beispiele

GTK+

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

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

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).