Grundlagen des (objektorientierten) visuellen Programmierens

Theorie

Objektorientiertes Programmieren

Programme mit grafischer Benutzeroberfläche

GUI

Grafische Benutzeroberfläche oder auch grafische Benutzerschnittstelle (Abk. GUI von englisch graphical user interface) bezeichnet eine Form von Benutzerschnittstelle eines Computers. Sie hat die Aufgabe, Anwendungssoftware auf einem Rechner mittels grafischer Symbole, Steuerelemente oder auch Widgets genannt, bedienbar zu machen. Dies geschieht bei Computern meistens mittels einer Maus als Steuergerät, mit der die grafischen Elemente bedient oder ausgewählt werden, bei Smartphones, Tablets und Kiosksystemen in der Regel durch Berührung eines Sensorbildschirms.

Programmen mit GUI vs. Konsolenanwendungen

Vorteile Konsolenanwendung
Vorteile GUI-Programme

Fenstersystem

Ein Fenstersystem (englisch windowing system) ist der Unterbau einer grafischen Benutzeroberfläche (GUI), deren Hauptaufgabe die Verwaltung von Programmfenstern ist. Im Normalfall ist es Teil einer größeren Desktop-Umgebung.

Aus der Sicht eines Programmierers implementiert das Fenstersystem die grafischen Basisfunktionen, wie das Darstellen von Schriftarten, Zeichnen von Linien, Kurven und Pixelgrafiken, und das Abstrahieren der Grafikhardware (Grafikkarte).

Das Fenstersystem gestattet es dem Anwender mit mehreren Programmen gleichzeitig zu arbeiten, indem jedes Programm „in“ einem oder mehreren eigenen Bereichen des Bildschirms, den Fenstern, ausgeführt wird, die üblicherweise rechteckig sind, mit dem Zeigegerät (Maus) frei bewegt werden können und einander überlappen dürfen.

Einige Fenstersysteme, wie das X Window System in Unix-artigen Umgebungen, haben erweiterte Fähigkeiten wie Netzwerkstransparenz, die es dem Anwender gestatten die grafische Oberfläche einer Anwendung auf einem anderen Computer darzustellen. Das X-Window-System implementiert auch kein festes Aussehen der Umgebung, wodurch die Fenstermanager, GUI-Toolkits und Desktop-Umgebungen volle Freiheit bei der optischen Gestaltung und Handhabung haben.

GUI in C++

C + + bringt von Haus aus kein GUI mit, da es als hardwarenahe plattformunabhängige Sprache erstellt wurde und GUIs stark vom verwendeten Betriebssystem abhängen. Dieser „Mangel“ könnte einige Neueinsteiger vielleicht auf den ersten Blick abschrecken, da sie sich einen Einstieg in C + + oder gar in die gesamte Programmierung mit vielen Buttons, Textfeldern, Statusanzeigen und Menüeintragen erhofft haben.

Sobald man mit C + + dann doch ein GUI programmieren will, sollte auf externe Bibliotheken zurückgegriffen werden. Alle GUIs erfordern ein Verständnis der C + + Grundlagen. Nachfolgend sind einige Bibliotheken zur GUI-Programmierung aufgelistet. Viele der Bibliotheken lassen sich auch mit anderen Programmiersprachen einsetzen.

.NET-Framework

.NET Framework (auch mit dotNetFx oder nur mit NetFx abgekürzt) ist ein Teil von Microsofts Software-Plattform .NET. Es umfasst eine Sammlung zahlreicher Werkzeuge und Schnittstellen, die die Entwicklung von Anwendungsprogrammen unterstützen und vereinfachen sollen, sowie eine Laufzeitumgebung für Programme, die mithilfe dieses Frameworks geschrieben wurden. Da diese Programme hierbei nicht herkömmlich direkt in Instruktionen für einen Prozessor übersetzt werden, braucht ein System für die Ausführung der Programme zusätzliche Software (welche die Laufzeitumgebung des Frameworks bildet). Programme, die mit dem .NET Framework geschrieben wurden, werden in der Regel so ausgeliefert, dass benötigte Komponenten des Frameworks automatisch mitinstalliert werden. Der Benutzer muss sich also nur im Ausnahmefall um das Vorhandensein der Laufzeitumgebung kümmern. Außerdem ist das Framework seit vielen Jahren bereits Bestandteil von Windows Installationen, wenn auch nicht immer in der aktuellsten Version und daher ist diese für manche Zwecke nicht ausreichend.

Ziele des Frameworks, wie auch der Plattform .NET, sind unter anderem Kompatibilität zwischen verschiedenen Plattformen, Zusammenführung bisher inkompatibler Microsoft Technologien und Verbesserung veralteter Standards. Aus Anwendersicht birgt das Framework zwar keine direkten Vorteile, da sich seine Funktionen und Anwendungsbereiche hauptsächlich auf Softwareentwicklung, -betrieb und -wartung beschränken, dennoch ist es eine notwendige Voraussetzung für den Betrieb zahlreicher Anwendungsprogramme.

Qt

Qt ist eine leistungsstarke plattformübergreifende Klassenbibliothek mit Meta-Object Compiler (gennant: moc), die von der norwegischen Firma Trolltech entwickelt wurde. Trolltech wurde 2008 von Nokia übernommen, welches jedoch wirtschaftliche Schwierigkeiten hatte und in der Folge Qt 2011 an das finnische Softwareunternehmen Digia verkaufte.

Die Entwicklung wird inzwischen vom Qt Project vorangetrieben, so dass jeder sich daran beteiligen kann. Die Klassenbibliothek ist unter der GNU General Public License (GPL) und der GNU Lesser General Public License (LGPL) lizenziert. Es gibt außerdem eine proprietäre Lizenz von Digia, die allerdings lediglich zusätzlichen technischen Support beinhaltet.

Speziell aufgrund der Veränderungen, die mit Qt 5 und C + + Einzug in das Framework halten, ist Qt eine der mächtigsten Bibliotheken für C + +. Ein weiterer Vorteil von Qt ist die vollständig freie Entwicklungsumgebung Qt Creator, die insbesondere Anfängern das Programmieren leichter macht.

VCL - Visual Component Library

Die Visual Component Library (VCL) ist ein GUI-Toolkit für Windows-Anwendungen. Sie wurde von Embarcadero (Rad Studio), vormals Borland, Inprise und CodeGear, erstellt. Die VCL kann in den Programmiersprachen Borland Delphi, C + +, C, C# verwendet werden. Sie wird von den meisten Borland-Entwicklungsumgebungen als Komponentensammlung benutzt.

MFC - Microsoft Foundation Classes

Die Microsoft Foundation Classes (MFC) sind eine Sammlung objektorientierter Klassenbibliotheken (GUI-Toolkit), die von Microsoft für die Programmierung von Anwendungen mit grafischen Benutzeroberflächen für Windows mit C + + entwickelt wurden.

WF - Windows Forms

Windows Forms ist ein GUI-Toolkit des Microsoft .NET Frameworks. Es ermöglicht die Erstellung grafischer Benutzeroberflächen (GUIs) für Windows in C#. Im Vergleich zu Microsoft Foundation Classes (MFC), die auf der Programmiersprache C + + basiert, ist der Einstieg in die Programmierung mit Windows Forms einfacher. Das Framework basiert nicht auf dem Paradigma Model View Controller (MVC).

Mit .NET Framework 3.0 wurde von Microsoft eine Alternative zu Windows Forms bereitgestellt, die Windows Presentation Foundation, welche eine stärkere Trennung der grafischen Oberfläche vom Programmcode und – unter Zuhilfenahme von XAML, einer XML-basierenden Sprache – ein dynamischeres Layout ermöglicht.

GUI in C#

WPF - Windows Presentation Foundation

Windows Presentation Foundation (kurz WPF), auch bekannt unter dem Codenamen Avalon, ist ein Grafik-Framework und Fenstersystem des .NET Frameworks von Microsoft. Es wird seit Windows Vista mit Windows ausgeliefert und lässt sich auf Windows XP (bis zur Version 4.0) und Windows Server 2003 nachinstallieren. Für das neue Framework .NET Core soll WPF ab der Version 3.0 (für 2019 erwartet) unter Windows zur Verfügung stehen.[2]

WPF ist eine 2006 neu eingeführte Klassenbibliothek, die zur Gestaltung von grafischen Benutzeroberflächen und zur Integration von Multimedia-Komponenten und Animationen dient. Sie vereint DirectX, Windows Forms, Adobe Flash, HTML und CSS.

WPF stellt ein umfangreiches Modell für den Programmierer bereit. Dabei werden die Präsentation und die Geschäftslogik getrennt, dies wird vor allem durch die Auszeichnungssprache XAML (basierend auf XML) unterstützt. XAML beschreibt Oberflächen-Hierarchien deklarativ als XML-Code. WPF-Anwendungen können sowohl Desktop- als auch Web-Anwendungen sein und benutzen, wenn möglich, Hardwarebeschleunigung. Das Framework versucht, die verschiedenen Bereiche, die für die Präsentation wichtig sind (Benutzerschnittstelle, Zeichnen und Grafiken, Audio und Video, Dokumente, Typographie), zu vereinen.

Praxis

Visual C ++


Links: