Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // -- Animations --------------------------------------------------------
- // 1.1: Simple Animation
- QPropertyAnimation * animPos = new QPropertyAnimation(lui, "pos");
- animPos->setStartState(QPoint(0,0));
- animPos->setEndState(QPoint(200,200));
- animPos->setDuration(750);
- animPos->setEasingCurve(QEasingCurve::InOutQuart);
- // 1.2: Not So Simple Animation
- QPropertyAnimation * animPos = new QPropertyAnimation(lui, "pos");
- animPos->setStartState(QPoint(0,0));
- animPos->setEndState(QPoint(200,200));
- animPos->setDuration(750);
- animPos->setEasingCurve(QEasingCurve::InOutQuart);
- QPropertyAnimation * animAlpha = new QPropertyAnimation(lui, "windowOpacity");
- animAlpha ->setStartState(0);
- animAlpha ->setEndState(1);
- animAlpha ->setDuration(750);
- animAlpha ->setEasingCurve(QEasingCurve::InOutQuart);
- // Animate Both Properties
- QParallelAnimationGroup * animGroup = new QParallelAnimationGroup();
- animGroup->addAnimation(animPos);
- animGroup->addAnimation(animAlpha);
- animGroup->start();
- // 2: Multistate Animations
- QStateMachine * animCtlr = new QStateMachine();
- QState * root = new QState();
- QState * init = new QState(root);
- QState * inPos = new QState(root);
- animCtlr->addState(root);
- animCtlr->setInitialState(root);
- root->setInitialState(init);
- // Setup Inital State
- init->assignProperty(lui, "pos", QPoint(-200, -200));
- init->assignProperty(lui, "windowOpacity", 0);
- // Setup Another State
- inPos->assignProperty(lui, "pos", QPoint(300,300));
- inPos->assignProperty(lui, "windowOpacity", 1);
- // Animations
- QPropertyAnimation * animPos = new QPropertyAnimation(lui, "pos");
- animPos->setDuration(750);
- animPos->setEasingCurve(QEasingCurve::InOutQuart);
- QPropertyAnimation * animAlpha = new QPropertyAnimation(lui, "windowOpacity");
- animAlpha->setDuration(750);
- animAlpha->setEasingCurve(QEasingCurve::InCurve);
- // Animate Both Properties
- QParallelAnimationGroup * animGroup = new QParallelAnimationGroup();
- animGroup->addAnimation(animPos);
- animGroup->addAnimation(animAlpha);
- // Animation Countdown: 100ms
- QTimer * timer = new QTimer();
- // Fire State Change
- QAbstractTransition * trans = root->addTransition(timer, SIGNAL(timeout()), inPos);
- trans->addAnimation(animGroup);
- timer->setSingleShot(true);
- timer->start(100);
- animCtlr->start();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement