Créer des IHM avec Qt

EX2 : AFFICHAGE D’UN MESSAGE (après appui sur un bouton)

Signal = Message envoyé par un widget lorsqu’un événement se produit
Ex : Clic sur un bouton (clicked())

Slot = Fonction appelée lorsqu’un événement s’est produit
Le Signal appelle le Slot
Slot == méthode d’une classe
Ex : Slot quit() (class QApplication) –> arrêt du programme

OBJET 1

 

OBJET 2

Attributs

 

 

Méthodes

 

 

Signaux

———>

Slots

Slots

 

 

main.cpp

#include "mywindow.h"

#include <QApplication>

 

int main(int argc, char *argv[])    // c'est ici que ça commence

{

    QApplication a(argc, argv);     // constructeur de l'application

    MyWindow w;                     // Constructeur de la fenetre

    w.show();                       // Affichage de la fenetre

 

    return a.exec();                // Exécution de l'application

}


mywindow.h

#ifndef MYWINDOW_H

#define MYWINDOW_H

 

#include <QWidget>

#include <QPushButton>

#include <QMessageBox>

 

 

class MyWindow : public QWidget // On hérite de QWidget (IMPORTANT)

{

    Q_OBJECT                    // Nécessaire pour créer un slot maison

 

    public:

    MyWindow();                // Constructeur (forcément pubic)

 

    public slots:               // Slots maison

    void Dialogue();

 

    private:

    QPushButton *m_bouton;      // Attribut (forcément privé)

                                // pointeur --> il faudra le construire dynamiquement (new)

 

};

 

#endif // MYWINDOW_H


mywindow.cpp

#include "mywindow.h"

 

MyWindow::MyWindow() : QWidget()  // spécification du constructeur

{

    setFixedSize(300,400); // setFixedSize appartient à classe MaFenetre (héritage de QWidget

                           // Largeur / Hauteur

 

    /* Construction du bouton */

    m_bouton = new QPushButton("open", this); // this = pointeur vers le widget parent, pointeur vers 'moi'

    m_bouton->move(100, 100);   // RePositionnement Absolu

 

    /* Connexions Signal - Slot */

    QObject::connect(m_bouton, SIGNAL(clicked()), this, SLOT(Dialogue())); // this = SLOT de MyWindow (SLOT MAISON)

}

//==========================================================================================

void MyWindow::Dialogue()

{

    QMessageBox::information(this, "Titre de la fenêtre", "Hello");

    // REM : information / warning / critical / question

    // int reponse =  QMessageBox::question(this, "Titre de la fenêtre", "vraiment ?", QMessageBox::Yes | QMessageBox::No);

    // (OU LOGIQUE)

 

}

//==========================================================================================


Créé avec HelpNDoc Personal Edition: Faites l'expérience d'une interface conviviale avec l'outil de documentation de HelpNDoc