Vous êtes sur la page 1sur 10

QT

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

b. Vérifier votre fichier .pro

c. Ajouté les classes suivantes:

#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"

int main(int argc, char *argv[])


{
QApplication A(argc, argv);

MyWidget * O1 = new MyWidget(); // constructeur sans paramètre


O1->show();

MyWidget * O2 = new MyWidget("QUITTER","TP QT : Signal et Slot"); // constructeur avec paramètre


O2->show();

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>

5. Changer la boîte de dialogue QMessageBox par une boîte de


dialogue de type question (QMessageBox::question).

int retour = QMessageBox::question(this,"Titre","choisir yes ou no",


QMessageBox::Yes | QMessageBox::No);
TP2 QT : Signal et Slot
6. Ajouter deux boutons à vote boîte de dialogue (yes – no). La réponse
sera affichée dans le TextEdit.
if(retour==QMessageBox::Yes){
m_tE->setText("yes");
}
else if(retour==QMessageBox::No){
m_tE->setText("no");
}
QObject::connect(m_pB,SIGNAL(clicked()),qApp,SLOT(quit()));
TP2 QT : Signal et Slot
7. Nous aimerions maintenant activer la fonctionnalité cliqué du
bouton QUITTER. Pour ce faire, il faut créer une connexion entre le
signal clicked() et le slot quit() dans le constructeur.

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()));

Vous aimerez peut-être aussi