C++ kalboje grafinės vartotojo sąsajos (GUI) programavimas yra svarbus kuriant šiuolaikines programas, kur vartotojai turi puikią grafiką, su kuria gali dirbti. Nors C++ dažniausiai siejamas su sistemos programavimu ir žaidimų rašymu, tai gali būti puiki alternatyva GUI rašymui. Šiame straipsnyje aptarsime GUI programavimą C++, kai kurias populiarias C++ GUI bibliotekas ir kaip sukurti pagrindinę GUI programą C++.
Būtinos sąlygos: C++, C++ OOP, kai kurios GUI bibliotekos pagrindai.
Kas yra GUI (grafinė vartotojo sąsaja)?
Grafinė vartotojo sąsaja (GUI) yra vaizdinė programos sąsaja, kuri pateikiama naudojant grafiką, pvz., langus, teksto laukelius ir mygtukus, kuriais vartotojai gali bendrauti su programine įranga. GUI siūlo interaktyvią ir lengvai naudojamą platformą, palyginti su komandų eilutės sąsaja (CLI), nes vartotojai gali naudoti pelę ar kitus įvesties įrenginius, tokius kaip jutiklinis ekranas ir pan., nepasikliavę tik klaviatūra.
interneto naršyklės nustatymus
Pagrindinės GUI programavimo sąvokos
Grafinė vartotojo sąsaja (GUI) apima langų, dialogų, mygtukų ir tt projektavimą, kurie visi yra interaktyvūs vartotojo sąsajos komponentai. Tada mes valdome šiuos valdiklius naudodami įvykių tvarkykles, tokias kaip onClick, onHover ir kt.
Pagrindinės GUI programavimo sąvokos yra šios:
Valdikliai
Grafinė vartotojo sąsaja (GUI) sudaryta iš valdiklių. Pavyzdžiui, tai apima mygtukus, teksto laukelius, etiketes ir kt. Kiekvieno valdiklio ypatybes ir veikimą galima pritaikyti pagal konkrečius programos poreikius. Paprastai GUI bibliotekoje yra šie valdikliai:
- Langas: Aukščiausio lygio lango rėmas, kuriame yra kitų valdiklių.
- Mygtukas: Mygtukas, kurį galima spustelėti, su jo paspaudimu susietas koks nors įvykis.
- Etiketė: Paprastas, tik skaitomas tekstas
- Žymimasis langelis : langelis, kuriame pateikiamos parinktys įjungti arba išjungti.
- Radijo mygtukas: Laukelis, kuriame pateikiamos parinktys įjungti arba išjungti, tačiau grupėje galime pasirinkti tik vieną radijo mygtuką.
- Išskleidžiamasis meniu / kombinuotasis langelis : paspaudus atidaromas išskleidžiamasis meniu. Neatidarytoje formoje gali būti rodomas tik vienas elementas.
- Teksto laukelis: Redaguojama teksto sritis.
- Sąrašo laukelis: Dėžutė su keliais elementais ir slinkties juosta, kad galėtumėte peržiūrėti juos visus.
- Slankiklis: Naršymo valdiklis, naudojamas judėti programoje.
- Meniu: Viršuje rodomas meniu programos vartotojui suteikia įvairių parinkčių.
- Dialogo langas: Lango viršuje rodomas laukelis. Kartais rodomas pranešimas.
- Tinklelis: Naudojamas vartotojo sąsajos išdėstymui valdyti.
Išdėstymo valdymas
GUI programos turi būti optimizuotos įvairiems skirtingų dydžių, skiriamųjų gebų ir tt ekranams, siekiant išlaikyti patrauklią, bet efektyvią vartotojo sąsają su įvairiais ekrane išdėstytais valdikliais.
Renginių tvarkymas
Programuojant GUI, tokie įvykiai kaip mygtukų paspaudimai ar klavišų paspaudimai yra labai svarbūs. Šiuos įvykius tvarko programa, kad ji galėtų sekti vartotojo veiksmus. Yra įvairių įvykių, susijusių su skirtingais valdikliais. Pavyzdžiui, su mygtuku, kurį galima spustelėti, susiję įvykiai yra:
- Spustelėkite Įvykis
- Pelės judėjimo įvykis
- Dėmesys įvykiui
- „Focus Out“ renginys
Populiarios C++ GUI bibliotekos
C++ turi daug nuo platformos nepriklausomų GUI bibliotekų, kurias galima naudoti kuriant GUI programą. Kai kurie iš populiariausių yra:
- gtkmm
- Qt
- wxWidgets
- Gerbiamas ImuGui
C++ GUI programos pavyzdys
Toliau nurodytoms programoms naudosime šiuos įrankius:
- Qt biblioteka : mūsų programos GUI biblioteka.
- Qt dizaineris: Interaktyvus Qt GUI šablono dizaineris.
- Qt kūrėjas: IDE, skirta Qt GUI programoms
Dabar apžvelgsime realius GUI programavimo atvejus su C++ ir Qt. Mes ketiname sukurti pagrindinę Hello World programą, mygtuką ir spustelėjus mygtuką atsiras dialogo langas su užrašu Hello World tekstu. Mes jį įgyvendinsime šiais veiksmais:
1 veiksmas: Qt projekto kūrimas
Atidarysime „Qt Creator“ ir sukursime naują „Qt Widget Application“ tipo projektą. Įveskite vardą, pasirinkite vietą ir galite pradėti. Qt kūrėjas sukurs projektą su visais reikalingais failais.

2 veiksmas: lango projektavimas
Tada atidarysime failą mainWindow.ui . Šiame faile yra programos vartotojo sąsaja. Pridėsime vieną teksto etiketę naudodami ką tik atidarytą dizainerį.
Dabar mūsų failuose bus toks kodas:
mainWindow.h
C++
java int į dvigubą
#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> |
>
>
pagrindinis.cpp
C++
#include 'mainwindow.h'> > #include> > int> main(>int> argc,>char> *argv[])> {> >QApplication a(argc, argv);> >MainWindow w;> >w.show();> >return> a.exec();> }> |
>
>
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;> }> |
>
>
mainWindow.ui
XML
xml version='1.0' encoding='UTF-8'?> |
kas yra java hashmap
>Atkreipkite dėmesį, kad mainWindow.ui yra parašytas XML. Taip yra todėl, kad Qt savo vartotojo sąsajos failus rašo XML. 4 veiksmas: sukurkite ir paleiskite
Vienu spustelėjimu galime sukurti ir paleisti Qt projektą „Qt Creator“.
Išvestis
GUI programų pranašumai
GUI programos turi keletą privalumų, prisidedančių prie geresnės vartotojo patirties ir supaprastinto kūrimo:
- Patogi vartotojo sąsaja: Grafinių vartotojo sąsajų (GUI) naudojimas suteikia paprastą ir lengvai naudojamą požiūrį į programinės įrangos taikomąsias programas, palyginti su kitais metodais, kuriems prireiktų daugiau laiko.
- Patobulintas interaktyvumas: Tai apima interaktyvias funkcijas, pvz., mygtukus, išskleidžiamuosius meniu, žymimąjį laukelį ir slankiklį, kurie suteikia vartotojams galimybę valdyti savo patirtį.
- Suderinamumas su keliomis platformomis: Tokios kalbos kaip Qt leidžia sukurti GUI programą, skirtą „Windows“, „MacOS“, „Linux“ su C++.
- Greitas prototipų kūrimas: Daugelio GUI kūrėjų ir projektavimo įrankių buvimas GUI sistemose skatina greitą sąsajų prototipų kūrimą, todėl visas kūrimo procesas paspartėja.