« Programmation Qt/La fenêtre principale » : différence entre les versions

Contenu supprimé Contenu ajouté
Athozus (discussion | contributions)
Complétion
Athozus (discussion | contributions)
Complétion
Ligne 13 :
* '''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 ===
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 :<syntaxhighlight lang="c++" line="1" start="1">
QMenu *menuFichier = menuBar()->addMenu("Fichier", this);
</syntaxhighlight>Première ligne de code, premier changement ! Eh bien oui, c'est la méthode <code>addMenu()</code> de <code>menuBar()</code> que nous allons appeler. À noter : nous sommes dans une classe qui dérive de <code>QMainWindow</code>, si vous regardez bien. Si votre code n'est que dans un seul fichier (trèèès mauvais), vous devrez écrire <code>maFenetrePrincipale->menuBar()->addMenu()</code>.
 
==== Ajouter une action ====
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 :<syntaxhighlight lang="c++" line="1" start="2">
QAction *actionNouveauFichier = new QAction("Nouveau fichier");
menuFichier->addAction(actionNouveauFichier);
</syntaxhighlight>Il faudra penser à rajouter des actions. Autre chose, il y a juste marqué Nouveau fichier. C'est banal ! Arrangeons ça !<syntaxhighlight lang="c++" line="1" start="4">
actionNouveauFichier->setIcon(QIcon("nouveau-fichier.png"));
actionNouveauFichier->setShortcut(QKeySequence("Ctrl+N"));
</syntaxhighlight>Et si notre action est Gras, on peut faire ceci :<syntaxhighlight lang="c++" line="1" start="1">
QAction *actionGras = new QAction("Gras");
actionGras->setIcon(QIcon("gras.png"));
actionGras->setCheckable(true);
menuEdition->addAction(actionGras);
</syntaxhighlight>
 
==== Créer des sous-menus ====
Si la personne a par exemple la liste des fichiers récents, il faut procéder comme ceci :<syntaxhighlight lang="c++" line="1" start="1">
QMenu *menuFichier = menuBar()->addMenu("Fichier", this);
QMenu *menuFichiersRecents = new QMenu("Fichiers récents");
QAction *actionFichierPro = new QAction("Un certain fichier *.pro");
QAction *actionFichierH = new QAction("Un certain fichier *.h");
QAction *actionFichierCpp = new QAction("Un certain fichier *.cpp");
menuFichiersRecents->addAction(actionFichierPro);
menuFichiersRecents->addAction(actionFichierH);
menuFichiersRecents->addAction(actionFichierCpp);
menuFichier->addMenu(menuFichiersRecents);
</syntaxhighlight>Cette fois-ci, on utilise la méthode <code>addMenu()</code>.
 
{{AutoCat}}