Fenêtre principale de l'applicationAperçu des classes de la fenêtre principaleCes classes fournissent tout ce dont vous avez besoin pour une fenêtre principale d'application moderne typique, comme la fenêtre principale elle-même, les menus et barre d'outils, une barre d'état, etc.
Les classes de la fenêtre principaleQt 4 fournit les classes suivantes pour la gestion des fenêtres principales et des composants utilisateur associés :
Code d'exempleL'utilisation de QMainWindow est très simple. Généralement, nous héritons de QMainWindow et définissons des menus, barres d'outils et widgets de type dock dans le constructeur de QMainWindow. Pour ajouter une barre de menu à la fenêtre principale, nous créons simplement les menus et les ajoutons à la barre de menu de la fenêtre principale. Notez que la fonction QMainWindow::menuBar() créera automatiquement la barre de menu lors du premier appel. Vous pouvez aussi appeler QMainWindow::setMenuBar() pour utiliser une barre de menu personnalisée dans la fenêtre principale. MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { ... newAct = new QAction(tr("&Nouveau"), this); newAct->setShortcuts(QKeySequence::New); newAct->setStatusTip(tr("Créer un nouveau fichier")); connect(newAct, SIGNAL(triggered()), this, SLOT(newFile())); openAct = new QAction(tr("&Ouvrir..."), this); openAct->setShortcuts(QKeySequence::Open); openAct->setStatusTip(tr("Ouvrir un fichier existant")); connect(openAct, SIGNAL(triggered()), this, SLOT(open())); ... Une fois les actions créées, nous pouvons les ajouter aux composants de la fenêtre principale. Pour commencer, nous les ajoutons au menu pop-up: fileMenu = menuBar()->addMenu(tr("&Fichier")); fileMenu->addAction(newAct); fileMenu->addAction(openAct); ... fileMenu->addSeparator(); ... Les classes QToolBar et QMenu utilisent le système d'action de Qt pour fournir une API cohérente. Dans le code ci-dessus, quelques actions existantes sont ajoutées au menu fichier avec la fonction QMenu::addAction(). La QToolBar fournit aussi cette fonction, facilitant la réutilisation des actions dans différentes parties de la fenêtre principale. Cela permet d'éviter la duplication inutile du travail. Nous créons une barre d'outils comme enfant de la fenêtre principale et nous lui ajoutons les actions désirées : fileToolBar = addToolBar(tr("Fichier")); fileToolBar->addAction(newAct); fileToolBar->addAction(openAct); ... fileToolbar->setAllowedAreas(Qt::TopToolBarArea | Qt::BottomToolBarArea); addToolBar(Qt::TopToolBarArea, fileToolbar); Dans cet exemple, la barre d'outils est restreinte aux parties supérieures et inférieures de la fenêtre principale et est initialement placée en haut de la fenêtre. Nous pouvons voir que les actions spécifiées par newAct et openAct seront affichées à la fois dans la barre d'outils et dans le menu fichier. La classe QDockWidget s'utilise d'une façon similaire à QToolBar. Nous créons un widget de type dock comme enfant de la fenêtre principale et ajoutons des widgets en tant qu'enfants du widget dock : contentsWindow = new QDockWidget(tr("Table des matières"), this); contentsWindow->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); addDockWidget(Qt::LeftDockWidgetArea, contentsWindow); headingList = new QListWidget(contentsWindow); contentsWindow->setWidget(headingList); Dans cet exemple, le widget de type dock peut être seulement placé sur la gauche ou la droite de la fenêtre. Initialement, il est placé sur la gauche. La classe QMainWindow permet au programmeur de choisir quelles zones de widgets dock occuperont chacun des quatre coins de la fenêtre. Si nécessaire, la valeur par défaut peut être modifiée avec la fonction QMainWindow::setCorner() : setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea); setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea); setCorner(Qt::TopRightCorner, Qt::RightDockWidgetArea); setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea); Le diagramme suivant présente la configuration définie par le code ci-dessus. Notez que les widgets dock occupent les coins haut et bas de la fenêtre principale pour ce layout. Une fois que tous les composants de la fenêtre principale ont été définis, le widget central est créé puis inséré en utilisant le code suivant: QWidget *centralWidget = new QWidget(this); setCentralWidget(centralWidget); Le widget central peut être une instance de toute classe dérivée de QWidget. RemerciementsMerci à Alexandre Laurent pour la traduction, ainsi qu'à Ilya Diallo, Ali-K?mal Aydin et Claude Leloup pour la relecture ! |
Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. | Qt 4.7 | |
Copyright © 2024 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD. | ||
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP ! |