Cours:CompositionQT : Différence entre versions
(Page créée avec « =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 bou... ») |
|||
Ligne 7 : | Ligne 7 : | ||
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. | 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 : | ||
+ | |||
+ | <source lang=cpp> | ||
+ | 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(); | ||
+ | }; | ||
+ | </source> | ||
+ | |||
+ | <source lang=cpp> | ||
+ | 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); | ||
+ | } | ||
+ | </source> |
Version du 4 décembre 2018 à 11:04
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);
}