Es gibt derzeit verschiedene Möglichkeiten zur Programmierung einer graphischen Benutzeroberfläche.
Was ist eine GUI?
Eine Graphische Benutzeroberfläche (GUI) ist eine Software-Komponente, die dem Benutzer eines Computers die Interaktion mit der Maschine über graphische Symbole erlaubt. Die darstellungen und Elemente können meist unter Verwendung eines Zeigergerätes gesteuert werden.
Im folgenden werden die wichtigsten GUI-Bibliotheken näher beschrieben
C++ Builder

Mit dem C++Builder kann man schnell und einfach Windows-Anwendungen erstellen, sowohl Win32-Konsolenanwendungen als auch Win32-Programme mit graphischer Benutzeroberläche (GUI = Graphical User Interface). Mit relativ wenigen Code-Zeilen, lassen sich graphische Anwendungen für die Windows-Plattform entwickeln.
Die wichtigsten Elemente zur einfachen Bedienung sind schon im C++ Builder vorgefertigt mitgeliefert. Mit ein paar Mausklicks muss man sie nur noch zusammenfügen.
C#

C# (ausgesprochen »C sharp«) ist die systemeigene Sprache für die .NET Common Language Runtime. C# wurde entworfen, um sich nahtlos in die .NET-Laufzeitumgebung einzufügen. C# stellt genügend objektorientierte Funktionen bereit, um große Vorteile gegenüber andere Programmiersprachen zu bieten. In Kombination mit der .NET Common Language Runtime kann C# für die Entwicklung komponentenorientierter Software eingesetzt werden, ohne dass die Programmierer ihr Potenzial im Hinblick auf C, C++ oder COM-Code ungenutzt lassen müssen.
QT-Creator

Qt Creator ist eine C++/Qt-Entwicklungsumgebung, die besonders für die Entwicklung von plattformunabhängigen C++ Programmen und QML-Oberflächen mit der Qt-Bibliothek gedacht ist.
Eigenschaften von QT-Creator:
Quellcode-Editor mit Syntaxhervorhebung und Autovervollständigung.
Projektverwaltung
Versions-Control-Plugins
GUI-Designer
Debugger
Qt-Dokumentation
Beispielprogramme
Matlab

Unter Matlab steht das Tool GUIDE (Graphical User Interface development enviroment) zur Verfügung. Es ermöglicht durch einfaches Drag and drop das Erstellen einer Oberfläche mit Buttons, Textfeldern, Menüs und weiteren Komponenten. Die Funktionsrümpfe der GUI-Funktionen werden von Matlab automatisch erzeugt. In diese Rümpfe können die Funktionalitäten, die hinter der GUI stehen sollen einprogrammiert werden.
Labview

LabVIEW ist eine grafische Programmierumgebung, die von der Firma National
Instruments entwickelt wurde. Das Akronym steht für "Laboratory Virtual
Instrumentation Engineering Workbench". Der Schwerpunkt von LabVIEW liegt in der
Datenerfassung und -verarbeitung. Dies macht das System sehr attraktiv für
Anwendungsgebiete wie Mess-, Regel-, und Automatisierungstechnik.
Da die
Programmierung mit einer grafischen Programmiersprache erfolgt, wird die
Programmlogik meist recht schnell verstanden und die Software kann an die
individuelle Bedürfnisse angepasst werden. Die in LabVIEW erstellten Projekte
oder Programme werden als virtuelle Instrumente (VIs) bezeichnet. Jedes Element
stellt ein VI dar und kann selbstverständlich in anderen Programmen als SubVI
verwendet werden. Es ist möglich das Grundsystem mit Bibliotheken, die
zahlreiche fertige VIs für viele spezifische Anwendungen erhalten, zu erweitern.
Diese sind meistens kostenpflichtig von National Instruments zu erwerben.
Beim Erstellen eines Programms werden die einzelnen VIs miteinander verbunden
und somit wird die Abarbeitungsreihenfolge festgelegt. Ein VI kann erst dann
starten, wenn alle notwendigen Daten vorhanden sind und hört auf, sobald das
Programm komplett abgearbeitet wurde. Ein VI besteht aus zwei Fenstern:
Frontpanel und Blockdiagramm. Das Frontpanel stellt die Benutzerschnittstelle
dar. Damit lassen sich sehr übersichtliche und benutzerfreundliche Oberflächen
erstellen. Im Blockdiagramm erfolgt die Erstellung des eigentlichen Programms in
grafischer Form. Zum Bedienen von LabVIEW stehen dem Programmierer folgende
Fenster zur Verfügung:
• Elementefenster - enthält die Bedien- und
Anzeigeelemente für das Frontpanel
• Funktionspalette - Datenerzeugung und
-erfassung, Signalanalyse, Signalverarbeitung
und arithmetische
Funktionen
• Werkzeugpalette - enthält Bearbeitungswerkzeuge