Cours:CompositionQT

De troyesGEII
Révision datée du 4 décembre 2018 à 12:07 par Bjacquot (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

Contrôleur de lampes

On souhaite gérer la puissance d'éclairement à l'aide de plusieurs lampes.

On dispose d'un bouton, et de 4 lampes.

A chaque appui sur le bouton, on allumera une lampe supplémentaire, puis lorsque toutes les lampes sont allumées, l'appui suivant les éteint toutes.


Au besoin, vous partirez de la classe lampe suivante :

class Lampe : public QObject
{
    Q_OBJECT
public:
    Lampe(QObject *parent = 0);

private :
    int etat;

signals:
    void nouvelEtat(int etat);
public slots:
    void allumer();
    void eteindre();
    void changer();
};
Lampe::Lampe(QObject *parent) : QObject(parent)
{
    etat = 0;
}

void Lampe::allumer()
{
    etat = 1 ;
    emit nouvelEtat(etat);
}

void Lampe::eteindre()
{
    etat = 0 ;
    emit nouvelEtat(etat);
}

void Lampe::changer()
{
    etat = ! etat ;
    emit nouvelEtat(etat);
}

Travail

  • Créer une classe controleur
  • avec les attributs :
    • l1,l2,l3,l4 : de type Lampe
    • nbLampeAllumees : de type int
  • avec un slot :
    • augmenter : slot qui sera appelé à chaque appui sur le bouton