State Transition when Mouse Enters Object Problem
I'm having a problem on transitioning between states, by hovering on the object.
I have tried this code
Code:
QStateMachine machine;
machine.setGlobalRestorePolicy(QStateMachine::RestoreProperties);
QState *group = new QState(&machine);
group->setObjectName("group");
QRect selectedRect
(270,
125,
130,
130);
QState *idleState = new QState(group);
group->setInitialState(idleState);
QObjectList objects;
objects << p1 << p2 << p3;
QState *state1 = new QState(group);
QState *state2 = new QState(group);
QState *state3 = new QState(group);
state1->assignProperty(p1, "geometry", selectedRect);
state2->assignProperty(p2, "geometry", selectedRect);
state3->assignProperty(p3, "geometry", selectedRect);
// Enter P1
QEventTransition
*enterTransition
= new QEventTransition
(p1,
QEvent::Enter);
enterTransition->setTargetState(state1);
group->addTransition(enterTransition);
// Enter P2
QEventTransition
*enterTransition
= new QEventTransition
(p2,
QEvent::Enter);
enterTransition->setTargetState(state2);
group->addTransition(enterTransition);
// Enter P2
QEventTransition
*enterTransition
= new QEventTransition
(p3,
QEvent::Enter);
enterTransition->setTargetState(state3);
group->addTransition(enterTransition);
window.createAnimations(objects, &machine);
machine.addState(s1);
machine.addState(s2);
machine.addState(s3);
machine.setInitialState(group);
machine.start();
It works fine if I try to trigger the transition with a mouse click,
Code:
group->addTransition(p1, SIGNAL(clicked()), state1);
So I think I'm doing something wrong with the QEventTransition,
but I have no idea what I'm doing wrong.
Thanks.
Re: State Transition when Mouse Enters Object Problem
Are your p1, p2 and p3 objects getting enter events at all? Use an event filter or reimplement the event handler to find out.