this state_ state_ if () { } } else { } else if () { QDebug((QtMsgType)0) << "" << ; set_(); postInternalEvent( eventSenders[] = new SCC_EventSender(this,0 , new QSignalEvent(this,(*metaObject()).indexOfSignal(""),QVariantList() QVariant() )); { QObject* obj = eventSenders[]; if (obj) { (*obj).cancel(); } #include "QStateMachine" #include "QSignalTransition" #include "QTimer" #include "QFinalState" #include "QHistoryState" #include "QHash" #include "QSignalEvent" #include "QEventTransition" #include "QDebug" #ifndef __SMCLASS__H #define __SMCLASS__H class SMClass_; class SCC_UnconditionalTransition : public QAbstractTransition { public: SCC_UnconditionalTransition(QState* s) : QAbstractTransition(s) {} protected: void onTransition(QEvent *) {} bool eventTest(QEvent *) { return true; } }; class SCC_EventSender : public QTimer { Q_OBJECT private: QStateMachine* machine; QEvent* event; public: SCC_EventSender(QStateMachine* m, int delay, QEvent* e) : QTimer(m), machine(m), event(e) { setInterval(delay); setSingleShot(true); connect(this,SIGNAL(timeout()),this,SLOT(send())); } public Q_SLOTS: void cancel() { stop(); deleteLater(); } void send() { machine->postEvent(event); } }; namespace { class Transition_ : public QSignalTransition { SMClass_* stateMachine; public: Transition_(QState* parent) : QSignalTransition(parent),stateMachine((SMClass_*)(*parent).machine()) { } protected: bool eventTest(QEvent* e); }; }; class SMClass_ : public QStateMachine { Q_OBJECT Q_PROPERTY( READ get_ WRITE set_ NOTIFY _changed) Q_PROPERTY(QAbstractAnimation* READ anim_ WRITE setAnim_) public: SMClass_(QObject* o) : QStateMachine(o) {} QState* ; QFinalState* ; QHistoryState* ; bool testCondition_(const QEvent & _event) { Q_UNUSED(_event) return true; } get_() const { return _data.; } void set_(const & value) { _data. = value; emit _changed(value); } protected: struct { ; } _data; void initScript() { _data. = ; } private Q_SLOTS: void exec_() { } Q_SIGNALS: void event_(); void _changed(const &); protected: #ifndef QT_NO_PROPERTIES virtual void endSelectTransitions(QEvent *event) { (*).assignProperty(,"",QVariant()); } #endif private: ]]> _eventSenders; public: void setupStateMachine() { setObjectName(""); = new QFinalState QHistoryState QState (); (*).setObjectName(""); (*).setInitialState(); (*).setChildMode(ParallelStates); (*).setHistoryType(QHistoryState:: Deep Shallow History); QAbstractTransition* transition; transition = new Transition_( QEventTransition(, QSignalTransition(state_,SIGNAL(finished()), QSignalTransition(this,SIGNAL(event_()), SCC_UnconditionalTransition(); connect(transition,SIGNAL(triggered()),this,SLOT(exec_())); (*transition).addAnimation(); (*transition).setTargetState(state_); (*transition).setTargetStates(QList<QAbstractState*>() << state_); connect(, SIGNAL( entered exited ()),this,SLOT(exec_())); } }; bool Transition_::eventTest(QEvent* e) { return QSignalTransition::eventTest(e) && stateMachine->testCondition_(e?(*e):QEvent(QEvent::None)); } #endif