Sur cette page

Didacticiel sur les widgets

Introduction

Les Widgets sont les éléments de base des applications d'interface utilisateur graphique (GUI) construites avec Qt. Chaque composant de l'interface graphique (par exemple, les boutons, les étiquettes, les éditeurs de texte) est un widget qui est placé quelque part dans la fenêtre de l'interface utilisateur, ou qui est affiché comme une fenêtre indépendante. Chaque type de widget est fourni par une sous-classe de QWidget, qui est elle-même une sous-classe de QObject.

QWidget n'est pas une classe abstraite. Elle peut être utilisée comme conteneur pour d'autres widgets et peut être sous-classée avec un minimum d'effort pour créer de nouveaux widgets personnalisés. QWidget est souvent utilisé pour créer une fenêtre à l'intérieur de laquelle d'autres QWidgetsont placés.

Comme pour QObjects, QWidgets peut être créé avec des objets parents pour indiquer la propriété, garantissant ainsi que les objets sont supprimés lorsqu'ils ne sont plus utilisés. Avec les widgets, ces relations parent-enfant ont une signification supplémentaire : chaque widget enfant est affiché dans la zone d'écran occupée par son widget parent. Cela signifie que lorsque vous supprimez un widget de fenêtre, tous les widgets enfants qu'il contient sont également supprimés.

Écrire une fonction principale

De nombreux exemples d'interfaces graphiques fournis avec Qt GUI suivent le modèle d'un fichier main.cpp, qui contient le code standard pour initialiser l'application, ainsi qu'un certain nombre d'autres fichiers source/en-tête qui contiennent la logique de l'application et les composants personnalisés de l'interface graphique.

Une fonction typique de main() dans main.cpp se présente comme suit :

#include <QtWidgets>

// Include header files for application components.
// ...

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    // Set up and show widgets.
    // ...

    return app.exec();
}

Tout d'abord, un objet QApplication est construit, qui peut être configuré à l'aide d'arguments transmis par la ligne de commande. Une fois les widgets créés et affichés, QApplication::exec() est appelé pour lancer la boucle d'événements de Qt. Le contrôle passe à Qt jusqu'au retour de cette fonction. Enfin, main() renvoie la valeur renvoyée par QApplication::exec().

Exemples de widgets simples

Chacun de ces exemples de widgets simples est entièrement écrit dans la fonction main().

Exemples de widgets dans le monde réel

Dans ces exemples plus avancés, le code qui crée les widgets et les présentations est stocké dans d'autres fichiers. Par exemple, l'interface graphique d'une fenêtre principale peut être créée dans le constructeur d'une sous-classe de QMainWindow.

Construction des exemples

Si vous avez installé un paquetage binaire pour obtenir Qt, ou si vous avez compilé Qt vous-même, les exemples décrits dans ce tutoriel devraient déjà être construits et prêts à fonctionner. Si vous souhaitez les modifier et les recompiler, suivez les étapes suivantes :

  1. À l'invite de commande, entrez dans le répertoire contenant l'exemple que vous avez modifié.
  2. Tapez qmake et appuyez sur Return. Si cela ne fonctionne pas, assurez-vous que l'exécutable se trouve dans votre chemin d'accès ou entrez son emplacement complet.
  3. Sous Linux/Unix et macOS, tapez make et appuyez sur Return; sous Windows avec Visual Studio, tapez nmake et appuyez sur Return.

Un fichier exécutable est créé dans le répertoire actuel. Sous Windows, ce fichier peut se trouver dans un sous-répertoire debug ou release. Vous pouvez exécuter cet exécutable pour voir le code de l'exemple à l'œuvre.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.