Académique Documents
Professionnel Documents
Culture Documents
Yassine Nasser
TP2 QT : Signal et Slot
1. Créer un projet Qt vide
a. Créer un projet QT (Fichier → Nouveau projet → Autre Projet → Empty qmake
Project)
b. L'utilisation de l'API C++ d'un module Qt (Qt Widgets Module) nécessite une
liaison avec la bibliothèque de modules
c. Pour établir un lien avec le module, ajoutez cette ligne à votre fichier
qmake .pro: QT += widgets
Qt Widgets : Classes pour étendre l'interface graphique Qt avec des widgets C++.
TP2 QT : Signal et Slot
2. Ajouter une classe MyWidget qui permettra de créer une interface avec un
bouton QUITTER et un TextEdit.
a. Ajouter une classe (Fichier → Nouveau fichier → C/C++ → C++ classe)
class MyWidget : public QWidget
#include <QWidget>
Les widgets sont les blocs de construction de base pour les applications d'interface graphique construites avec Qt.
Chaque composant de l'interface graphique (par exemple, les boutons, les étiquettes, les éditeurs de texte) est un
widget placé quelque part dans une fenêtre d'interface utilisateur ou affiché sous la forme d'une fenêtre
indépendante. Chaque type de widget est fourni par une sous-classe de QWidget.
TP2 QT : Signal et Slot
#include <QApplication>
La classe QApplication gère le flux de contrôle et les paramètres principaux de l'application graphique
#include <QPushButton>
fournit un bouton de commande
#include <QTextEdit>
Widget utilisé pour modifier et afficher du texte brut
TP2 QT : Signal et Slot
• mywidget.h
class MyWidget: public QWidget
{
public:
MyWidget(QWidget *parent = 0);
MyWidget(char *TextBouton, char *textTextEdit, QWidget *parent=0);
};
• mywidget.cpp
… // constructeur sans paramètre
MyWidget::MyWidget(char *TextBouton, char *textTextEdit, QWidget *parent) : QWidget(parent)
{
QTextEdit *m_tE=new QTextEdit(textTextEdit,this);
QPushButton *m_pB=new QPushButton(TextBouton,this);
m_pB->move(25,100);
}
TP2 QT : Signal et Slot
• main.cpp
#include "mywidget.h"
return A.exec();
}
TP2 QT : Signal et Slot
4. Lors de la création de votre fenêtre, une boîte de dialogue
QMessageBox s’affiche avec un message d’accueil.
a. #include <QMessageBox>
…
QObject::connect(m_pB,SIGNAL(clicked()),qApp,SLOT(quit()));
TP2 QT : Signal et Slot
8. On souhaite maintenant demander à l’utilisateur de confirmer la
fermeture de l’application. Pour ce faire, créer votre propre slot
permettant d’afficher un message (QMessageBox) lorsque le bouton
QUITTER est cliqué.
QObject::connect(m_pB,SIGNAL(clicked()),qApp,SLOT(quit()));