Programmation Qt/La fenêtre principale

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche
Programmation Qt
Programmation Qt
Sommaire
Modifier le sommaire

La fenêtre principale permet l'utilisation de nombreux outils. Pour cela, on utilisera la classe QMainWindow.

Utiliser les outils de la fenêtre principale[modifier | modifier le wikicode]

Connaître les différents outils[modifier | modifier le wikicode]

Pour connaître les différents outils, quelque chose de simple :

  • Les menus : Fichier, Édition, ...
  • La barre d'outils : les petites icônes, dans Qt Creator Compiler, Exécuter, Déboguer, etc...
  • Les docks : rarement utilisés, ce sont par exemple la liste des fichiers ouverts dans Qt Creator.
  • La zone centrale : la partie la plus importante, dans Qt Creator le code source
  • La barre de statut : comme son nom l'indique, le statut de la fenêtre. Par exemple, dans un navigateur web, vous pourrez avoir la durée de chargement

Les menus[modifier | modifier le wikicode]

Pour notre chapitre, nous irons de haut en bas, et c'est bien pour cela que nous commençons avec les menus. C'est le plus utilisé (si on ne compte pas la zone centrale), et la grande majorité des programmes en ont. Pour commencer, nous allons étudier un code :

1 QMenu *menuFichier = menuBar()->addMenu("Fichier", this);

Première ligne de code, premier changement ! Eh bien oui, c'est la méthode addMenu() de menuBar() que nous allons appeler. À noter : nous sommes dans une classe qui dérive de QMainWindow, si vous regardez bien. Si votre code n'est que dans un seul fichier (trèèès mauvais), vous devrez écrire maFenetrePrincipale->menuBar()->addMenu().

Ajouter une action[modifier | modifier le wikicode]

C'est bien beau, mais, si vous compilez, et que vous cliquez sur votre menu, rien ne s'ouvre ! Qt ne sait absolument pas que le menu Fichier contiendra une action Nouveau, et c'est ce que nous allons faire :

2 QAction *actionNouveauFichier = new QAction("Nouveau fichier");
3 menuFichier->addAction(actionNouveauFichier);

Il faudra penser à rajouter des actions. Autre chose, il y a juste marqué Nouveau fichier. C'est banal ! Arrangeons ça !

4 actionNouveauFichier->setIcon(QIcon("nouveau-fichier.png"));
5 actionNouveauFichier->setShortcut(QKeySequence("Ctrl+N"));

Et si notre action est Gras, on peut faire ceci :

1 QAction *actionGras = new QAction("Gras");
2 actionGras->setIcon(QIcon("gras.png"));
3 actionGras->setCheckable(true);
4 menuEdition->addAction(actionGras);

Créer des sous-menus[modifier | modifier le wikicode]

Si la personne a par exemple la liste des fichiers récents, il faut procéder comme ceci :

1 QMenu *menuFichier = menuBar()->addMenu("Fichier", this);
2 QMenu *menuFichiersRecents = new QMenu("Fichiers récents");
3 QAction *actionFichierPro = new QAction("Un certain fichier *.pro");
4 QAction *actionFichierH = new QAction("Un certain fichier *.h");
5 QAction *actionFichierCpp = new QAction("Un certain fichier *.cpp");
6 menuFichiersRecents->addAction(actionFichierPro);
7 menuFichiersRecents->addAction(actionFichierH);
8 menuFichiersRecents->addAction(actionFichierCpp);
9 menuFichier->addMenu(menuFichiersRecents);

Cette fois-ci, on utilise la méthode addMenu().

La barre d'outils[modifier | modifier le wikicode]

Pour afficher des actions dont l'utilisateur aura le plus besoin, on utilise la barre d'outils qui nous permet de ne pas passer par les menus. Et ce qui est très pratique, c'est que nous pouvons réutiliser toutes les actions du menu !

1 QToolBar *barreDoutilsFichier = addToolBar("Fichier");
2 QAction *actionQuitter = new QAction("Fermer la fenêtre");
3 barreDoutilsFichier->addAction(actionQuitter);