En C++, la programmation d'interface utilisateur graphique (GUI) est importante dans le développement d'applications modernes où les utilisateurs disposent de jolis graphiques avec lesquels travailler. Bien que le C++ soit généralement lié à la programmation système et à l’écriture de jeux, il peut constituer une excellente alternative à l’écriture d’interfaces graphiques. Dans cet article, nous discuterons de la programmation GUI en C++, de certaines bibliothèques GUI populaires pour C++ et de la façon de créer une application GUI de base en C++.
Conditions préalables: Fondamentaux du C++, POO C++, certaines bibliothèques GUI.
Qu'est-ce que l'interface graphique utilisateur (GUI) ?
L'interface utilisateur graphique (GUI) est une interface d'application visuelle fournie à l'aide de graphiques tels que des fenêtres, des zones de texte et des boutons grâce auxquels les utilisateurs peuvent communiquer avec le logiciel. L'interface graphique offre une plate-forme interactive et facile à utiliser par rapport à l'interface de ligne de commande (CLI), car les utilisateurs peuvent utiliser la souris ou d'autres périphériques d'entrée tels qu'un écran tactile, etc. sans compter uniquement sur le clavier.
Principaux concepts de la programmation GUI
Une interface utilisateur graphique (GUI) implique la conception de fenêtres, de boîtes de dialogue, de boutons, etc. qui sont tous des composants d'interface utilisateur interactifs. Ensuite, nous contrôlons ces widgets à l'aide de gestionnaires d'événements comme onClick, onHover, etc.
qu'est-ce qu'un double Java
Les principaux concepts de la programmation GUI sont :
Widgets
Une interface utilisateur graphique (GUI) est composée de widgets. Il s'agit par exemple de boutons, de zones de texte, d'étiquettes, etc. Les propriétés et les comportements de chaque widget peuvent être personnalisés en fonction des besoins spécifiques d'une application. Il existe généralement les widgets suivants dans une bibliothèque GUI :
- Fenêtre: Un cadre de fenêtre de niveau supérieur qui héberge d'autres widgets à l'intérieur de lui-même.
- Bouton: Un bouton cliquable auquel un événement est associé à son clic.
- Étiquette: Texte simple en lecture seule
- Case à cocher : Boîte qui offre les options d'activation ou de désactivation.
- Bouton radio: Boîte qui offre les options d'activation ou de désactivation mais nous ne pouvons choisir qu'un seul bouton radio dans un groupe.
- Liste déroulante/Combo : Ouvre un menu déroulant lorsque vous cliquez dessus. Un seul élément peut être affiché dans le formulaire non ouvert.
- Zone de texte: Zone de texte modifiable.
- Zone de liste : La boîte avec plusieurs éléments et une barre de défilement pour les parcourir tous.
- Glissière: Un widget de navigation utilisé pour se déplacer dans l'application.
- Menu: Affiché en haut, le menu propose différentes options à l'utilisateur de l'application.
- Boite de dialogue: Une boîte qui s'affiche en haut d'une fenêtre. Parfois pour afficher la notification.
- Grille: Utilisé pour la gestion de la mise en page de l'interface utilisateur.
Gestion de la mise en page
Les applications GUI doivent être optimisées pour différents écrans de différentes tailles, résolutions, etc., ce qui cherche à conserver une interface utilisateur attrayante mais efficace avec les différents widgets organisés sur l'écran.
Gestion des événements
Dans la programmation GUI, les événements tels que les clics sur des boutons ou les pressions sur des touches sont critiques. Ces événements sont gérés par l'application afin qu'elle puisse suivre les actions de l'utilisateur. Il existe différents événements associés à différents widgets. Par exemple, pour un bouton cliquable, les événements associés sont :
- Cliquez sur Événement
- Événement de déplacement de la souris
- Focus sur l'événement
- Événement Focus Out
Bibliothèques GUI populaires pour C++
C++ dispose de nombreuses bibliothèques GUI indépendantes de la plate-forme qui peuvent être utilisées pour développer une application GUI. Certains des plus populaires sont :
- gtkmm
- Qt
- wxWidgets
- Cher ImuGui,
Exemple d'application GUI C++
Nous utiliserons les outils suivants pour les programmes ci-dessous :
- Bibliothèque Qt : La bibliothèque GUI de notre programme.
- Concepteur Qt : Un concepteur de modèles d'interface graphique interactif pour Qt.
- Créateur Qt : IDE pour les applications GUI Qt
Nous allons maintenant examiner des cas réels de programmation GUI avec C++ et Qt. Nous allons développer une application de base Hello World avec un bouton et lorsque vous cliquez sur le bouton, une boîte de dialogue apparaîtra avec le texte Hello World écrit dessus. Nous allons le mettre en œuvre en suivant ces étapes :
Étape 1 : Création d'un projet Qt
Nous allons ouvrir Qt Creator et créer un nouveau projet de type Qt Widget Application. Entrez le nom, sélectionnez l’emplacement et vous êtes prêt à partir. Le créateur de Qt créera le projet avec tous les fichiers requis.

Étape 2 : Conception de la fenêtre
Nous ouvrirons ensuite le fichier mainWindow.ui . Ce fichier contient l'interface utilisateur de l'application. Nous ajouterons une étiquette de texte en utilisant le concepteur qui vient d'être ouvert.
Maintenant nos fichiers contiendront le code suivant :
fenêtremain.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> |
>
>
java en mouvement vers int
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++
commentaire javascript
#include 'mainwindow.h'> #include './ui_mainwindow.h'> > MainWindow::MainWindow(QWidget *parent)> >: QMainWindow(parent)> >, ui(>new> Ui::MainWindow)> {> >ui->setupUi(>this>);> }> > MainWindow::~MainWindow()> {> >delete> ui;> }> |
>
>
tri par sélection en java
mainWindow.ui
XML
xml version='1.0' encoding='UTF-8'?> |
>
>
Notez que mainWindow.ui est écrit en XML. C'est parce que Qt écrit ses fichiers d'interface utilisateur en XML.
Étape 4 : Créer et exécuter
Nous pouvons créer et exécuter le projet Qt dans Qt Creator en un seul clic.
Sortir

Avantages des applications GUI
Les applications GUI offrent plusieurs avantages, contribuant à une meilleure expérience utilisateur et à un développement rationalisé :
- Interface conviviale : L'utilisation d'interfaces utilisateur graphiques (GUI) offre une approche simple et facile à utiliser pour les applications logicielles par rapport à d'autres approches qui prendraient plus de temps.
- Interactivité améliorée : Il englobe des fonctionnalités interactives telles que des boutons, des menus déroulants, des cases à cocher et des curseurs qui donnent aux utilisateurs le pouvoir sur leurs expériences.
- Compatibilité multiplateforme : Les langages tels que Qt permettent la création d'applications GUI pour Windows, macOS, Linux avec C++.
- Prototypage rapide: La présence de nombreux constructeurs d'interface graphique et outils de conception dans les frameworks d'interface graphique favorise le prototypage rapide des interfaces, accélérant ainsi l'ensemble du processus de développement.