W języku C++ programowanie z graficznym interfejsem użytkownika (GUI) jest ważne przy tworzeniu nowoczesnych aplikacji, w których użytkownicy mają ładną grafikę do pracy. Chociaż C++ jest powszechnie kojarzony z programowaniem systemowym i pisaniem gier, może być doskonałą alternatywą dla pisania GUI. W tym artykule omówimy programowanie GUI w C++, niektóre popularne biblioteki GUI dla C++ i jak stworzyć podstawową aplikację GUI w C++.
Warunki wstępne: Podstawy C++, C++ OOP, niektóre biblioteki GUI.
Co to jest GUI (graficzny interfejs użytkownika)?
Graficzny interfejs użytkownika (GUI) to wizualny interfejs aplikacji udostępniany za pomocą elementów graficznych, takich jak okna, pola tekstowe i przyciski, za pomocą których użytkownicy mogą komunikować się z oprogramowaniem. GUI oferuje interaktywną i łatwą w użyciu platformę w porównaniu z interfejsem wiersza poleceń (CLI), ponieważ użytkownicy mogą korzystać z myszy lub innych urządzeń wejściowych, takich jak ekran dotykowy itp., bez polegania wyłącznie na klawiaturze.
Główne koncepcje programowania GUI
Graficzny interfejs użytkownika (GUI) obejmuje projektowanie okien, okien dialogowych, przycisków itp., które są interaktywnymi komponentami interfejsu użytkownika. Następnie kontrolujemy te widżety za pomocą procedur obsługi zdarzeń, takich jak onClick, onHover itp.
lista tablic Java
Główne koncepcje programowania GUI to:
Widżety
Graficzny interfejs użytkownika (GUI) składa się z widżetów. Są to na przykład przyciski, pola tekstowe, etykiety itp. Właściwości i zachowanie każdego widgetu można dostosować do specyficznych potrzeb aplikacji. W bibliotece GUI znajdują się zazwyczaj następujące widżety:
- Okno: Rama okna najwyższego poziomu, w której znajdują się inne widżety.
- Przycisk: Klikalny przycisk, z którym kliknięciem jest powiązane jakieś zdarzenie.
- Etykieta: Prosty tekst tylko do odczytu
- Pole wyboru : Pole zawierające opcje włączania i wyłączania.
- Przycisk radiowy: Pole umożliwiające włączenie lub wyłączenie opcji, ale w grupie możemy wybrać tylko jeden przycisk opcji.
- Lista rozwijana/pole kombi : otwiera menu rozwijane po kliknięciu. W nieotwartym formularzu może zostać wyświetlony tylko jeden element.
- Pole tekstowe: Edytowalny obszar tekstowy.
- Skrzynka na listy: Pole z wieloma elementami i paskiem przewijania umożliwiającym przeglądanie ich wszystkich.
- Suwak: Widget nawigacyjny służący do poruszania się po aplikacji.
- Menu: Pokazane u góry menu zapewnia użytkownikowi aplikacji różne opcje.
- Okno dialogowe: Pole wyświetlane w górnej części okna. Czasami, aby wyświetlić powiadomienie.
- Siatka: Używany do zarządzania układem interfejsu użytkownika.
Zarządzanie układem
Aplikacje GUI muszą być zoptymalizowane dla różnych ekranów o różnych rozmiarach, rozdzielczościach itp., co ma na celu utrzymanie atrakcyjnego, ale skutecznego interfejsu użytkownika z różnymi widżetami zorganizowanymi na ekranie.
Obsługa zdarzeń
W programowaniu GUI zdarzenia takie jak kliknięcia przycisków lub naciśnięcia klawiszy są krytyczne. Zdarzenia te są obsługiwane przez aplikację, aby mogła śledzić działania użytkownika. Z różnymi widżetami powiązane są różne zdarzenia. Na przykład w przypadku klikalnego przycisku powiązane zdarzenia to:
- Kliknij Wydarzenie
- Zdarzenie ruchu myszy
- Skupić się na wydarzeniu
- Wydarzenie skupiające uwagę
Popularne biblioteki GUI dla C++
C++ ma wiele niezależnych od platformy bibliotek GUI, których można używać do tworzenia aplikacji GUI. Niektóre z popularnych to:
- gtkmm
- Qt
- wxWidgets
- Drogi ImuGui
Przykład aplikacji GUI w języku C++
W poniższych programach będziemy używać następujących narzędzi:
- Biblioteka Qt : Biblioteka GUI dla naszego programu.
- Projektant Qt: Interaktywny projektant szablonów GUI dla Qt.
- Twórca Qt: IDE dla aplikacji Qt GUI
Teraz przyjrzymy się prawdziwym przypadkom programowania GUI w C++ i Qt. Zamierzamy opracować podstawową aplikację Hello World za pomocą przycisku, a po kliknięciu przycisku pojawi się okno dialogowe z napisanym tekstem Hello World. Zrealizujemy to, wykonując następujące kroki:
Krok 1: Tworzenie projektu Qt
Otworzymy Qt Creator i utworzymy nowy projekt typu Qt Widget Application. Wpisz nazwę, wybierz lokalizację i gotowe. Kreator Qt utworzy projekt ze wszystkimi wymaganymi plikami.

Krok 2: Projektowanie okna
Następnie otworzymy plik mainWindow.ui . Ten plik zawiera interfejs użytkownika aplikacji. Dodamy jedną etykietę tekstową, korzystając z właśnie otwartego projektanta.
Teraz nasze pliki będą zawierać następujący kod:
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> |
>
>
ciąg jsonobiekt
main.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++
topologie
#include 'mainwindow.h'> #include './ui_mainwindow.h'> > MainWindow::MainWindow(QWidget *parent)> >: QMainWindow(parent)> >, ui(>new> Ui::MainWindow)> {> >ui->setupUi(>this>);> }> > MainWindow::~MainWindow()> {> >delete> ui;> }> |
>
>
wybierz wielostołowy sql
mainWindow.ui
XML-a
xml version='1.0' encoding='UTF-8'?> |
>
>
Zwróć uwagę, że plik mainWindow.ui jest napisany w formacie XML. Dzieje się tak dlatego, że Qt zapisuje swoje pliki interfejsu użytkownika w formacie XML.
Krok 4: Zbuduj i uruchom
Projekt Qt możemy zbudować i uruchomić w kreatorze Qt za pomocą jednego kliknięcia.
Wyjście

Zalety aplikacji GUI
Aplikacje GUI oferują kilka korzyści, przyczyniając się do lepszego doświadczenia użytkownika i usprawnienia programowania:
- Przyjazny dla użytkownika interfejs: Korzystanie z graficznych interfejsów użytkownika (GUI) zapewnia proste i łatwe w obsłudze podejście do aplikacji w porównaniu z innymi podejściami, które zajmowałyby więcej czasu.
- Ulepszona interaktywność: Obejmuje interaktywne funkcje, takie jak przyciski, menu rozwijane, pole wyboru i suwak, które dają użytkownikom kontrolę nad swoimi doświadczeniami.
- Kompatybilność między platformami: Języki takie jak Qt umożliwiają tworzenie aplikacji GUI dla Windows, macOS, Linux z C++.
- Szybkie prototypowanie: Obecność wielu kreatorów GUI i narzędzi do projektowania w frameworkach GUI sprzyja szybkiemu prototypowaniu interfejsów, dzięki czemu cały proces programowania jest szybszy.