GUI står for Graphical User Interface. Disse er en væsentlig del af moderne softwareudvikling. Grafiske brugergrænseflader giver udviklere mulighed for at skabe applikationer, som brugerne nemt kan interagere med. C++ er et kraftfuldt programmeringssprog, der er meget brugt i udviklingen af komplekse softwaresystemer. I denne artikel vil vi undersøge, hvordan man bygger GUI'er i C++ ved hjælp af forskellige biblioteker og rammer.
Hvad er en GUI?
En grafisk brugergrænseflade eller GUI giver brugerne mulighed for at interagere med en computer ved hjælp af visuelle elementer såsom knapper, menuer og dialogbokse. GUI'er giver en brugervenlig og intuitiv grænseflade, der giver brugerne mulighed for at udføre opgaver hurtigt og effektivt. De er meget udbredt i applikationer som webbrowsere, medieafspillere og kontorpakker.
Hvorfor C++ til GUI-udvikling?
C++ er et kraftfuldt programmeringssprog. Ved hjælp af C++ kan vi udvikle komplekse softwaresystemer, herunder GUI'er. Nogle af grundene til, at C++ er et populært valg til GUI-udvikling inkluderer:
Biblioteker og rammer til C++ GUI-udvikling
Der er så mange biblioteker og rammer tilgængelige til C++ GUI-udvikling. Lad os tage et kig på nogle af de mest populære muligheder.
1. Qt
Qt er det mest populære open source GUI-værktøjssæt. Det bruges i vid udstrækning til udvikling af GUI-applikationer på tværs af platforme. Det giver et omfattende sæt værktøjer og biblioteker til at bygge moderne GUI-applikationer, herunder understøttelse af berørings- og gestusbaseret input, avanceret grafik og multimedier.
strengsammenkædning java
Program 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(); }
Produktion:
Forklaring
Dette C++-program bruger sprintf-funktionen til at formatere en streng og printf-funktionen til at udskrive den formaterede streng til konsollen. Den erklærer nogle variabler, tildeler værdier til dem, formaterer en streng og udsender den til konsollen.
2. wxWidgets
wxWidgets er et andet populært GUI-værktøj på tværs af platforme. Det giver et sæt værktøjer og biblioteker til at bygge moderne GUI-applikationer. Det understøtter en lang række platforme, herunder Windows, Linux og macOS.
Program 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; }
Produktion:
Forklaring
Dette er en grundlæggende wxWidgets-kode, der opretter et vindue med en statuslinje og viser teksten 'Hello World'. HelloWorldApp-klassen er defineret til at implementere applikationen. OnInit()-funktionen initialiserer applikationen og opretter en ny ramme med den angivne titel. Funktionen CreateStatusBar() opretter en statuslinje nederst i vinduet, og SetStatusText() indstiller teksten til at blive vist i statuslinjen. Til sidst viser funktionen Show() vinduet, og SetTopWindow() indstiller rammen som vinduet på øverste niveau.
datastrukturer i java
3. FLTK
Det står for Fast Light Toolkit. Det er en cross-platform GUI toolkit. Det giver et let og hurtigt sæt værktøjer og biblioteker til at bygge GUI-applikationer. Det er et populært valg til byggeapplikationer, der kræver et lille fodaftryk eller har strenge krav til ydeevne.
Program 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(); }
Produktion:
Forklaring
Denne kode bruger fltk-biblioteket til at oprette et vindue med en mærket boks-widget, der siger 'Hej, verden!'. Æsken har en fed kursiv skrifttype, en størrelse på 36 og en skyggelabel. Vinduet har en størrelse på 300 x 180 pixels og vises på skærmen ved hjælp af show()-funktionen. Funktionen run() starter hovedhændelsesløkken for at håndtere brugerinput og holder vinduet synligt, indtil brugeren lukker det.
4. SDL
Det står for Simple DirectMedia Layer. Det er et multimediebibliotek på tværs af platforme. Det giver et sæt værktøjer og biblioteker til at bygge spil og multimedieapplikationer. Det inkluderer lyd, video, inputenheder og netværksunderstøttelse, hvilket gør det til en alsidig mulighed for at bygge multimedierige GUI-applikationer.
Program 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; }
Produktion:
Forklaring
Dette er et grundlæggende SDL-program skrevet i C-sprog. Den initialiserer SDL-biblioteket ved hjælp af SDL_Init(), opretter et vindue ved hjælp af SDL_CreateWindow(), og går ind i en uendelig løkke ved hjælp af while(1). Sløjfen gør ikke noget og venter bare på, at brugeren lukker vinduet eller afslutter programmet. Hvis der er nogen fejl ved initialisering af SDL, udskrives en fejlmeddelelse ved hjælp af printf()-funktionen. Programmet giver 0 ved succes.
Konklusion
C++ giver et kraftfuldt og effektivt programmeringssprog til udvikling af GUI-applikationer. Det har en bred vifte af biblioteker og rammer. Udviklerne har mange muligheder, når det kommer til at bygge deres applikationer. Uanset om udvikleren vælger Qt, wxWidgets, FLTK eller SDL, kan de skabe rige og moderne GUI-applikationer, der kører på forskellige platforme.