Bonjour,
J'ai eu besoin de définir une transition en sous-classant QAbstractTransition.
Ce que je veux faire, c'est que la transition s'effectue si le nombre passé en paramètre de l'event associé soit > 0
Voici mon code :
Le problème, c'est que je ne peut pas instancier un objet de type et_TransitionPhasesRestantes. Le compilateur me dit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 struct PhasesRestantesEvent : public QEvent { PhasesRestantesEvent(const uint &val) : QEvent(QEvent::Type(QEvent::User+1)), value(val) {} QString value; }; class et_TransitionPhasesRestantes : public QAbstractTransition { public: et_TransitionPhasesRestantes() {} protected: virtual bool eventTest(QEvent *e) const { if (e->type() != QEvent::Type(QEvent::User+1)) // PhasesRestantesEvent return false; PhasesRestantesEvent *pre = static_cast<PhasesRestantesEvent*>(e); return (pre->value > 0); } virtual void onTransition(QEvent *) {} };
Pourtant, la méthode est bien redéfinie!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ../executiontest.cpp:73: error: cannot allocate an object of abstract type et_TransitionPhasesRestantes ../et_transitionphasesrestantes.h:49: note: because the following virtual functions are pure within et_TransitionPhasesRestantes: /usr/include/qt4/QtCore/qabstracttransition.h:98: note: virtual bool QAbstractTransition::eventTest(QEvent*)
Merci de m'éclairer sur cette erreur dont je ne comprend pas la cause...





Répondre avec citation

Je n'y avais même pas pensé, puisque le const est présent dans l'exemple de la doc officielle, et effectivement ça résous le problème

Partager