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...
Partager