5.7 Utilisation de la barre de status

Il serait quand même un peu plus rassurant que notre éditeur nous confirme dès qu'il ouvre ou qu'il enregistre un fichier. Pour cela nous allons utiliser la barre de status (statusBar) de l'application.

Pour cela il faut inclure le fichier suivant :

1
#include <QtGui/QStatusBar>

Ce qui donnerait ceci dans le fichier TextEditor.h :

1
2
3
#include <QtGui/QMenuBar>
#include <QtGui/QToolBar>
#include <QtGui/QStatusBar>

Personnellement je préfère regrouper les includes qui ont un rapport entre eux (par exemple toutes les barres de quelque chose).

Nous pouvons maintenant modifier les slots dans le fichier TextEditor.cpp :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
void TextEditor::nouveau(){
	if(p_lastFileOpen != ""){
		saveFile(p_lastFileOpen);
	}
	p_textEditor->setText("");
	p_lastFileOpen = "";
	statusBar()->showMessage("Nouveau fichier", 2000);
}

void TextEditor::ouvrir(){
	QString fichier(QFileDialog::getOpenFileName(this, "Ouvrir un fichier", p_lastFileOpen, "Text (*)"));
	if(fichier == "") return;
	openFile(fichier);
	statusBar()->showMessage("Fichier ouvert", 2000);
}

void TextEditor::enregistrer(){
	if(p_lastFileOpen == ""){
		QString fileName(QFileDialog::getSaveFileName(this, "Enregistrer un fichier", QString(), "Text (*)"));
		if(fileName == "") return;
		p_lastFileOpen = fileName;
	}
	saveFile(p_lastFileOpen);
	statusBar()->showMessage("Fichier enregistrer", 2000);
}

void TextEditor::enregistrerSous(){
	QString fileName(QFileDialog::getSaveFileName(this, "Enregistrer un fichier sous", p_lastFileOpen, "Text (*)"));
	if(fileName == "") return;
	saveFile(fileName);
	statusBar()->showMessage("Fichier enregistrer-sous", 2000);
}

Le nombre 2000 correspond à un nombre de millisecondes, qui sera le temps pendant lequel le message sera afficher dans la barre de status (ici le message sera donc affiché 2 secondes).

Je vous conseille de faire des tests suivant la longueur de votre message, pour être sur que l'utilisateur a bien le temps de le lire.

Je vous donne le projet avec l'utilisation de la barre de status, pour ceux qui voudraient une correction : ici.