У C++ програмування графічного інтерфейсу користувача (GUI) є важливим для розробки сучасних програм, де користувачі мають гарну графіку для роботи. Хоча C++ зазвичай пов’язаний із системним програмуванням і написанням ігор, він може бути чудовою альтернативою написанню GUI. У цій статті ми обговоримо програмування графічного інтерфейсу користувача на C++, деякі популярні бібліотеки графічного інтерфейсу користувача для C++ і те, як створити базову програму GUI на C++.
Передумови: Основи C++, ООП C++, деяка бібліотека GUI.
Що таке GUI (графічний інтерфейс користувача)?
Графічний інтерфейс користувача (GUI) — це візуальний інтерфейс програми, який надається за допомогою графіки, наприклад вікон, текстових полів і кнопок, за допомогою яких користувачі можуть спілкуватися з програмним забезпеченням. GUI пропонує інтерактивну та просту у використанні платформу порівняно з інтерфейсом командного рядка (CLI), оскільки користувачі можуть використовувати мишу або інші пристрої введення, такі як сенсорний екран тощо, не покладаючись лише на клавіатуру.
Основні поняття програмування GUI
Графічний інтерфейс користувача (GUI) передбачає розробку вікон, діалогів, кнопок тощо, які є інтерактивними компонентами інтерфейсу користувача. Потім ми керуємо цими віджетами за допомогою обробників подій, таких як onClick, onHover тощо.
Основні поняття програмування GUI:
Віджети
Графічний інтерфейс користувача (GUI) складається з віджетів. Наприклад, це кнопки, текстові поля, мітки тощо. Властивості та поведінку кожного віджета можна налаштувати відповідно до конкретних потреб програми. Зазвичай у бібліотеці GUI є такі віджети:
- Вікно: Вікно верхнього рівня, яке містить інші віджети.
- кнопка: Кнопка, яку можна натиснути, з натисканням якої пов’язана якась подія.
- Мітка: Простий текст лише для читання
- Прапорець : вікно, яке надає опції для ввімкнення та вимкнення.
- Радіо-кнопка: Поле, у якому можна ввімкнути або вимкнути параметри, але ми можемо вибрати лише один перемикач у групі.
- Випадаюче/комбінований список : відкриває спадне меню після натискання. У нерозкритому вигляді може відображатися лише один товар.
- Текстове вікно: Область редагованого тексту.
- Список: Поле з декількома елементами та смугою прокручування, щоб пройти через усі.
- Повзунок: Навігаційний віджет, який використовується для переміщення програмою.
- Меню: Показане вгорі меню надає користувачеві програми різні параметри.
- Діалогове вікно: Поле, яке відображається у верхній частині вікна. Іноді для відображення сповіщення.
- Сітка: Використовується для керування макетом інтерфейсу користувача.
Управління макетом
Програми GUI повинні бути оптимізовані для різних екранів різних розмірів, роздільної здатності тощо, що прагне зберегти привабливий, але ефективний інтерфейс користувача з різними віджетами, організованими на екрані.
java tostring
Обробка подій
У програмуванні графічного інтерфейсу такі події, як натискання кнопок або клавіш, є критичними. Ці події обробляються програмою, щоб вона могла стежити за діями користувача. З різними віджетами пов’язані різні події. Наприклад, для кнопки, яку можна натиснути, пов’язані події:
- Натисніть Подія
- Подія переміщення миші
- Зосередьтеся на події
- Подія Focus Out
Популярні бібліотеки GUI для C++
У C++ є багато незалежних від платформи бібліотек графічного інтерфейсу користувача, які можна використовувати для розробки програми графічного інтерфейсу користувача. Деякі з популярних:
- gtkmm
- Qt
- wxWidgets
- Шановний ImuGui
Приклад C++ GUI програми
Ми будемо використовувати такі інструменти для наведених нижче програм:
- Бібліотека Qt : бібліотека GUI для нашої програми.
- Конструктор Qt: Інтерактивний конструктор шаблонів GUI для Qt.
- Qt Creator: IDE для додатків Qt GUI
Тепер ми розглянемо реальні випадки програмування GUI за допомогою C++ і Qt. Ми збираємося розробити базову програму Hello World, а після натискання кнопки з’явиться діалогове вікно з текстом Hello World. Ми реалізуємо це за допомогою таких кроків:
Крок 1: Створення проекту Qt
Ми відкриємо Qt Creator і створимо новий проект типу Qt Widget Application. Введіть ім’я, виберіть місце, і все готово. Творець Qt створить проект з усіма необхідними файлами.

Крок 2: Дизайн вікна
Потім ми відкриємо файл mainWindow.ui . Цей файл містить інтерфейс користувача програми. Ми додамо одну текстову мітку за допомогою конструктора, який щойно відкрився.
Тепер наші файли будуть містити такий код:
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> |
>
>
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++
java архітектура
#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'?> |
>
>
Зверніть увагу, що mainWindow.ui написаний у форматі XML. Це тому, що Qt записує свої файли інтерфейсу користувача в XML.
Крок 4: Створення та запуск
Ми можемо створити та запустити проект Qt у Qt creator одним клацанням миші.
Вихід

Переваги GUI додатків
Програми з графічним інтерфейсом користувача пропонують кілька переваг, що сприяють покращенню взаємодії з користувачем і спрощеній розробці:
- Зручний інтерфейс: Використання графічних інтерфейсів користувача (GUI) забезпечує простий і легкий у використанні підхід до програмних додатків порівняно з іншими підходами, які потребують більше часу.
- Розширена інтерактивність: Він включає в себе такі інтерактивні функції, як кнопки, спадні меню, прапорці та повзунки, які дають користувачам можливість керувати своїми враженнями.
- Кросплатформна сумісність: Такі мови, як Qt, дозволяють створювати програми з графічним інтерфейсом користувача для Windows, macOS, Linux з C++.
- Швидке створення прототипів: Наявність у фреймворках GUI багатьох конструкторів GUI та інструментів проектування сприяє швидкому створенню прототипів інтерфейсів, пришвидшуючи весь процес розробки.