GUI steht für Graphical User Interface. Diese sind ein wesentlicher Bestandteil moderner Softwareentwicklung. Mithilfe grafischer Benutzeroberflächen können Entwickler Anwendungen erstellen, mit denen Benutzer problemlos interagieren können. C++ ist eine leistungsstarke Programmiersprache, die häufig bei der Entwicklung komplexer Softwaresysteme eingesetzt wird. In diesem Artikel untersuchen wir, wie man GUIs in C++ mithilfe verschiedener Bibliotheken und Frameworks erstellt.
Was ist eine GUI?
Eine grafische Benutzeroberfläche (GUI) ermöglicht Benutzern die Interaktion mit einem Computer über visuelle Elemente wie Schaltflächen, Menüs und Dialogfelder. GUIs bieten eine benutzerfreundliche und intuitive Benutzeroberfläche, die es Benutzern ermöglicht, Aufgaben schnell und effizient auszuführen. Sie werden häufig in Anwendungen wie Webbrowsern, Mediaplayern und Office-Suiten verwendet.
Warum C++ für die GUI-Entwicklung?
C++ ist eine leistungsstarke Programmiersprache. Mit Hilfe von C++ können wir komplexe Softwaresysteme, einschließlich GUIs, entwickeln. Zu den Gründen, warum C++ eine beliebte Wahl für die GUI-Entwicklung ist, gehören:
Bibliotheken und Frameworks für die C++-GUI-Entwicklung
Es stehen so viele Bibliotheken und Frameworks für die C++-GUI-Entwicklung zur Verfügung. Werfen wir einen Blick auf einige der beliebtesten Optionen.
1. Qt
Qt ist das beliebteste Open-Source-GUI-Toolkit. Es wird häufig für die Entwicklung plattformübergreifender GUI-Anwendungen verwendet. Es bietet einen umfassenden Satz an Tools und Bibliotheken zum Erstellen moderner GUI-Anwendungen, einschließlich Unterstützung für berührungs- und gestenbasierte Eingaben, erweiterte Grafiken und Multimedia.
Programm 1:
#include #include int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); char myoutput [60]; int stringlength, x=4, y=10; stringlength = sprintf(myoutput, '%d plus %d equals %d', x, y, x+y); printf ('[%s] is a string that is %d characters long. ', myoutput, stringlength); return a.exec(); }
Ausgabe:
Erläuterung
Volladdierer
Dieses C++-Programm verwendet die Funktion sprintf zum Formatieren einer Zeichenfolge und die Funktion printf zum Drucken der formatierten Zeichenfolge auf der Konsole. Es deklariert einige Variablen, weist ihnen Werte zu, formatiert einen String und gibt ihn an die Konsole aus.
binärer Suchbaum
2. wxWidgets
wxWidgets ist ein weiteres beliebtes plattformübergreifendes GUI-Toolkit. Es bietet eine Reihe von Tools und Bibliotheken zum Erstellen moderner GUI-Anwendungen. Es unterstützt eine Vielzahl von Plattformen, darunter Windows, Linux und macOS.
Programm 2:
#include 'wx/wx.h' #include 'wx/wxprec.h' #include 'hello.h'IMPLEMENT_APP(HelloWorldApp)bool HelloWorldApp::OnInit() { wxFrame *frame = new wxFrame((wxFrame*) NULL, -1, _T('Hello wxWidgets World')); frame->CreateStatusBar(); frame->SetStatusText(_T('Hello World')); frame->Show(true); SetTopWindow(frame); return true; }
Ausgabe:
Erläuterung
Dies ist ein einfacher wxWidgets-Code, der ein Fenster mit einer Statusleiste erstellt und den Text „Hello World“ anzeigt. Die HelloWorldApp-Klasse ist zur Implementierung der Anwendung definiert. Die Funktion OnInit() initialisiert die Anwendung und erstellt einen neuen Frame mit dem angegebenen Titel. Die Funktion CreateStatusBar() erstellt eine Statusleiste am unteren Rand des Fensters und SetStatusText() legt den Text fest, der in der Statusleiste angezeigt werden soll. Schließlich zeigt die Funktion Show() das Fenster an und SetTopWindow() legt den Rahmen als Fenster der obersten Ebene fest.
3. FLTK
Es steht für Fast Light Toolkit. Es handelt sich um ein plattformübergreifendes GUI-Toolkit. Es bietet einen leichten und schnellen Satz von Tools und Bibliotheken zum Erstellen von GUI-Anwendungen. Es ist eine beliebte Wahl für Bauanwendungen, die eine geringe Stellfläche erfordern oder strenge Leistungsanforderungen stellen.
Programm 3:
#include #include #include using namespace fltk; int main(int argc, char **argv) { Window *window = new Window(300, 180); window->begin(); Widget *box = new Widget(20, 40, 260, 100, 'Hello, World!'); box->box(UP_BOX); box->labelfont(HELVETICA_BOLD_ITALIC); box->labelsize(36); box->labeltype(SHADOW_LABEL); window->end(); window->show(argc, argv); return run(); }
Ausgabe:
Erläuterung
Dieser Code verwendet die fltk-Bibliothek, um ein Fenster mit einem beschrifteten Box-Widget mit der Aufschrift „Hello, World!“ zu erstellen. Das Feld hat eine fette Kursivschrift, eine Größe von 36 und eine Schattenbeschriftung. Das Fenster hat eine Größe von 300 x 180 Pixel und wird mit der Funktion show() auf dem Bildschirm angezeigt. Die Funktion run() startet die Hauptereignisschleife zur Verarbeitung von Benutzereingaben und hält das Fenster sichtbar, bis der Benutzer es schließt.
4. SDL
Es steht für Simple DirectMedia Layer. Es handelt sich um eine plattformübergreifende Multimedia-Bibliothek. Es bietet eine Reihe von Tools und Bibliotheken zum Erstellen von Spielen und Multimediaanwendungen. Es umfasst Audio-, Video-, Eingabegeräte- und Netzwerkunterstützung und ist damit eine vielseitige Option für die Erstellung multimedialer GUI-Anwendungen.
Programm 4:
#include #include #include int main(int argc, char *argv[]) { // returns zero on success else non-zero if (SDL_Init(SDL_INIT_EVERYTHING) != 0) { printf('error initializing SDL: %s ', SDL_GetError()); } SDL_Window* win = SDL_CreateWindow('GAME', SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1000, 1000, 0); while (1) ; return 0; }
Ausgabe:
Erläuterung
Dies ist ein einfaches SDL-Programm, das in der Sprache C geschrieben ist. Es initialisiert die SDL-Bibliothek mit SDL_Init(), erstellt ein Fenster mit SDL_CreateWindow() und tritt mit while(1) in eine Endlosschleife ein. Die Schleife führt nichts aus und wartet lediglich darauf, dass der Benutzer das Fenster schließt oder das Programm beendet. Wenn beim Initialisieren von SDL ein Fehler auftritt, wird mithilfe der Funktion printf() eine Fehlermeldung gedruckt. Bei Erfolg gibt das Programm 0 zurück.
Python-sortiertes Tupel
Abschluss
C++ bietet eine leistungsstarke und effiziente Programmiersprache für die Entwicklung von GUI-Anwendungen. Es verfügt über eine große Auswahl an Bibliotheken und Frameworks. Den Entwicklern stehen bei der Erstellung ihrer Anwendungen viele Möglichkeiten zur Verfügung. Unabhängig davon, ob sich der Entwickler für Qt, wxWidgets, FLTK oder SDL entscheidet, kann er umfangreiche und moderne GUI-Anwendungen erstellen, die auf verschiedenen Plattformen ausgeführt werden.