V C++ je programiranje grafičnega uporabniškega vmesnika (GUI) pomembno pri razvoju sodobnih aplikacij, kjer imajo uporabniki na voljo lepo grafiko, s katero lahko delajo. Čeprav je C++ običajno povezan s sistemskim programiranjem in pisanjem iger, je lahko odlična alternativa pisanju GUI. V tem članku bomo razpravljali o programiranju GUI v C++, nekaterih priljubljenih knjižnicah GUI za C++ in o tem, kako ustvariti osnovno aplikacijo GUI v C++.
Predpogoji: Osnove C++, OOP C++, nekaj knjižnic GUI.
Kaj je GUI (grafični uporabniški vmesnik)?
Grafični uporabniški vmesnik (GUI) je vizualni aplikacijski vmesnik, ki je na voljo z uporabo grafike, kot so okna, besedilna polja in gumbi, prek katerih lahko uporabniki komunicirajo s programsko opremo. GUI ponuja interaktivno platformo, ki je enostavna za uporabo v primerjavi z vmesnikom ukazne vrstice (CLI), saj lahko uporabniki uporabljajo miško ali druge vnosne naprave, kot je zaslon na dotik itd., ne da bi se zanašali le na tipkovnico.
Glavni koncepti programiranja GUI
Grafični uporabniški vmesnik (GUI) vključuje oblikovanje oken, pogovornih oken, gumbov itd., ki so vse komponente interaktivnega uporabniškega vmesnika. Nato nadziramo te pripomočke z uporabo obdelovalcev dogodkov, kot so onClick, onHover itd.
Glavni koncepti programiranja GUI so:
Pripomočki
Grafični uporabniški vmesnik (GUI) je sestavljen iz gradnikov. To na primer vključuje gumbe, besedilna polja, oznake itd. Lastnosti in vedenje vsakega gradnika je mogoče prilagoditi glede na posebne potrebe aplikacije. V knjižnici GUI so na splošno naslednji gradniki:
- Okno: Okenski okvir najvišje ravni, ki v sebi gosti druge pripomočke.
- Gumb: Gumb, ki ga je mogoče klikniti in ima s klikom povezan dogodek.
- Oznaka: Preprosto besedilo samo za branje
- Potrditveno polje : polje, ki ponuja možnosti za vklop ali izklop.
- Radijski gumb: Polje, ki ponuja možnosti za vklop ali izklop, vendar lahko izberemo samo en izbirni gumb v skupini.
- Spustni meni/kombinirano polje : ob kliku odpre spustni meni. V neodprti obliki je lahko prikazan samo en artikel.
- besedilno polje: Območje besedila, ki ga je mogoče urejati.
- Seznamsko polje: Škatla z več predmeti in drsnim trakom za pomikanje po vseh.
- Drsnik: Navigacijski pripomoček za premikanje po aplikaciji.
- meni: Meni, prikazan na vrhu, ponuja uporabniku aplikacije različne možnosti.
- Pogovorno okno: Polje, ki je prikazano na vrhu okna. Včasih za prikaz obvestila.
- Mreža: Uporablja se za upravljanje postavitve uporabniškega vmesnika.
Upravljanje postavitve
Aplikacije GUI morajo biti optimizirane za različne zaslone različnih velikosti, ločljivosti itd., kar skuša ohraniti privlačen, a učinkovit uporabniški vmesnik z različnimi pripomočki, organiziranimi na zaslonu.
Obravnava dogodkov
Pri programiranju GUI so dogodki, kot so kliki gumbov ali pritiski tipk, kritični. Te dogodke obravnava aplikacija, da lahko sledi dejanjem uporabnika. Z različnimi pripomočki so povezani različni dogodki. Na primer, za gumb, ki ga je mogoče klikniti, so povezani dogodki:
- Kliknite Dogodek
- Dogodek premikanja miške
- Osredotočite se na dogodek
- Dogodek Focus Out
Priljubljene knjižnice GUI za C++
C++ ima veliko knjižnic GUI, neodvisnih od platforme, ki jih je mogoče uporabiti za razvoj aplikacije GUI. Nekateri priljubljeni so:
dekodiraj base64 javascript
- gtkmm
- Qt
- wxWidgets
- Dragi ImuGui
Primer aplikacije C++ GUI
Za spodnje programe bomo uporabljali naslednja orodja:
- Knjižnica Qt : Knjižnica GUI za naš program.
- Qt Designer: Interaktivni oblikovalec predlog GUI za Qt.
- Qt Creator: IDE za Qt GUI aplikacije
Zdaj si bomo ogledali resnične primere programiranja GUI s C++ in Qt. Razvili bomo osnovno aplikacijo Hello World a gumb in ko kliknete gumb, se prikaže pogovorno okno z besedilom Hello World. Izvedli ga bomo po naslednjih korakih:
1. korak: Ustvarjanje projekta Qt
Odprli bomo Qt Creator in ustvarili nov projekt tipa Qt Widget Application. Vnesite ime, izberite lokacijo in pripravljeni ste. Ustvarjalec Qt bo ustvaril projekt z vsemi zahtevanimi datotekami.

2. korak: Oblikovanje okna
Nato bomo odprli datoteko mainWindow.ui . Ta datoteka vsebuje uporabniški vmesnik aplikacije. Dodali bomo eno besedilno oznako s pomočjo oblikovalca, ki se je pravkar odprl.
Zdaj bodo naše datoteke vsebovale naslednjo kodo:
mainWindow.h
C++
#ifndef MAINWINDOW_H> #define MAINWINDOW_H> > #include> > QT_BEGIN_NAMESPACE> namespace> Ui {>class> MainWindow; }> QT_END_NAMESPACE> > class> MainWindow :>public> QMainWindow> {> >Q_OBJECT> > public>:> >MainWindow(QWidget *parent = nullptr);> >~MainWindow();> > private>:> >Ui::MainWindow *ui;> };> #endif // MAINWINDOW_H> |
>
>
vstavite vodni žig v besedo
main.cpp
C++
#include 'mainwindow.h'> > #include> > int> main(>int> argc,>char> *argv[])> {> >QApplication a(argc, argv);> >MainWindow w;> >w.show();> >return> a.exec();> }> |
>
>
java primerek
mainWindow.cpp
C++
#include 'mainwindow.h'> #include './ui_mainwindow.h'> > MainWindow::MainWindow(QWidget *parent)> >: QMainWindow(parent)> >, ui(>new> Ui::MainWindow)> {> >ui->setupUi(>this>);> }> > MainWindow::~MainWindow()> {> >delete> ui;> }> |
>
>
ssh polna oblika
mainWindow.ui
XML
xml version='1.0' encoding='UTF-8'?> |
>
>
Opazite, da je mainWindow.ui napisan v XML. To je zato, ker Qt piše svoje datoteke uporabniškega vmesnika v XML.
4. korak: Zgradite in zaženite
Projekt Qt lahko zgradimo in zaženemo v Qt creatorju z enim klikom.
Izhod

Prednosti GUI aplikacij
Aplikacije GUI ponujajo več prednosti, ki prispevajo k boljši uporabniški izkušnji in poenostavljenemu razvoju:
- Uporabniku prijazen vmesnik: Uporaba grafičnih uporabniških vmesnikov (GUI) zagotavlja preprost in za uporabo enostaven pristop k programskim aplikacijam v primerjavi z drugimi pristopi, ki bi zahtevali več časa.
- Izboljšana interaktivnost: Zajema interaktivne funkcije, kot so gumbi, spustni meniji, potrditvena polja in drsnik, ki uporabnikom dajejo moč nad njihovimi izkušnjami.
- Združljivost med platformami: Jeziki, kot je Qt, omogočajo ustvarjanje GUI aplikacije za Windows, macOS, Linux s C++.
- Hitra izdelava prototipov: Prisotnost številnih razvijalcev GUI in orodij za oblikovanje v ogrodjih GUI spodbuja hitro izdelavo prototipov vmesnikov, zaradi česar je celoten razvojni proces hitrejši.