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

Contenu supprimé Contenu ajouté
Athozus (discussion | contributions)
m Passage du sommaire en <noinclude>
Balise : Éditeur de wikicode 2017
Athozus (discussion | contributions)
+ Résumé
 
Ligne 81 :
setCentralWidget(zoneMDI);
</syntaxhighlight>Effectivement, nous utilisons le principe du SDI car on remarque <code>setCentralWidget()</code>. Pour notre MDI, la fenêtre n'a pas ses “propres” outils pour en créer, mais on utilise la classe <code>QMdiArea</code> qui contiendra des <code>QMdiSubWindow</code>, qu'on ajoute avec la méthode <code>addSubWindow()</code> d'une <code>QMdiArea</code>. Ces <code>QMdiSubWindow</code> contiendront les widgets de la sous-fenêtre.
{{A RetenirBlender|* Pour créer un SDI, on utilise un widget simple qu'on ajoute avec <code>setCentralWidget()</code>.
* Pour créer un MDI, on utilisera un widget <code>QMdiArea</code>, qui contiendra des <code>QMdiSubWindow</code>, qui seront ajoutés avec la méthode <code>addSubWindow()</code>.}}
 
=== La barre d'état ===
Aussi appelée barre de statut, la barre d'état est un “bandeau” en bas de la fenêtre qui indique l'état de la fenêtre. Regardez l'exemple ci-dessous :<syntaxhighlight lang="c++" line="1" start="1">
Ligne 90 ⟶ 87 :
progressBar->setValue(75);
statusBar()->addWidget(progressBar, 16);
</syntaxhighlight>Ici, nous supposons que nous sommes dans une classe de type <code>QMainWindow</code>, qui intègre directement la classe qui permet de créer une barre d'état : <code>QStatusBar</code>. Nous utilisons le plus souvent ces méthodes : <code>showMessage()</code> et <code>addWidget()</code>. La première méthode permet d'afficher un message, avec deux choix : soit nous indiquons directement le message, qui s'affichera alors jusqu'à ce que l'utilisateur passe dessus avec la souris ou qu'un autre message s'affiche, soit nous indiquons et le message et le temps qu'il doit rester, en millisecondes (vous prenez le nombre de secondes et vous multipliez par 1000). La deuxième méthode permet d'insérer un widget dans la barre d'état, ici une barre de progression, mais cela peut être un bouton, un champ, etc...
 
Vous êtes maintenant prêt à réaliser un TP qui utilise plus que jamais les éléments de la fenêtre principale. Eh oui, c'est un éditeur de texte que vous allez réaliser dans [[Programmation Qt/TP : un éditeur de texte|le prochain chapitre →]].
 
{{Résumé|La fenêtre principale est gérée par la classe <code>QMainWindow</code>.|On peut créer des menus, des barres d'outils, des docks et une barre d'état. On peut aussi gérer l'espace principal avec un SDI ou un MDI.|Les menus sont créés avec les classes <code>QMenu</code> et <code>QAction</code>. Pour ajouter créer un menu, on utilise <code>menuBar()->addMenu("Nom du menu', this)</code> On ajoute une action avec la méthode <code>addAction()</code>.|La barre d'outils réutilise les actions des menus sous forme d'icône. On les crée avec la méthode <code>addToolBar("Nom de la barre d'outils")</code>. De même, on y ajoute une action avec <code>addAction()</code>.|Les docks sont des gros conteneurs latéraux. La classe <code>QDockWidget</code> permet de les créer, puis on les ajoute avec <code>addDockWidget(Qt::Left/RightDockWidgetArea, monDock)</code>.|Enfin, la barre d'état s'utilise avec l'objet <code>statusBar()</code>, un objet <code>QStatusBar</code> automatiquement créé par la classe <code>QMainWindow</code>. On y affiche un message avec la méthode <code>showMessage("Message", nbMillisecondes)</code> et un widget avec <code>addWidget()</code>.}}
 
{{AutoCat}}