3.2.2 Le fichier FenetreTest.cpp

On commence le fichier comme d'habitude :

1
#include "FenetreTest.h"

On écrit le constructeur :

1
2
3
4
5
FenetreTest::FenetreTest()
	:QMainWindow()
{
	initialisationFenetreTest();
}

Le destructeur :

1
2
3
FenetreTest::~FenetreTest(){
	
}

Surtout, il ne faut détruire aucun fils de la fenêtre (comme p_boutonQuitter ou p_mainWidget), c'est la classe QMainWindow qui les détruira.

La fonction d'initialisation :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void FenetreTest::initialisationFenetreTest(){
	//on créé le bouton quitter
	p_boutonQuitter = new QPushButton("Quitter");
	connect(p_boutonQuitter, SIGNAL(pressed()), SLOT(close()));
	
	//on créé le layout principal
	QVBoxLayout * mainLayout = new QVBoxLayout;
	mainLayout->addWidget(p_boutonQuitter);
	
	//on créé le widget principal
	p_mainWidget = new QWidget;
	p_mainWidget->setLayout(mainLayout);
	
	//et ou n'oublie pas de le rajouter à la fenêtre
	setCentralWidget(p_mainWidget);
}

Là, vous voyez la fonction connect qui connecte le signal émit par le bouton p_boutonQuitter quand on lui clique dessus (pressed()) au slot close() de la classe, qui ferme la fenêtre.

Le QVBoxLayout à pour fonction de placer le bouton dans la fenêtre et de l'adapter à la taille de celle-ci.

On n'oublie pas d'inclure le moc (enfin le fichier générer par CMake):

1
#include "FenetreTest.moc"

Voilà un petit résumé :

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
#include "FenetreTest.h"

FenetreTest::FenetreTest()
	:QMainWindow()
{
	initialisationFenetreTest();
}

FenetreTest::~FenetreTest(){
	
}

void FenetreTest::initialisationFenetreTest(){
	p_boutonQuitter = new QPushButton("Quitter");
	connect(p_boutonQuitter, SIGNAL(pressed()), SLOT(close()));
	
	QVBoxLayout * mainLayout = new QVBoxLayout;
	mainLayout->addWidget(p_boutonQuitter);
	
	p_mainWidget = new QWidget;
	p_mainWidget->setLayout(mainLayout);
	
	setCentralWidget(p_mainWidget);
}


#include "FenetreTest.moc"

Et voilà pour la classe.