Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. // -- Animations --------------------------------------------------------
  2.  
  3. // 1.1: Simple Animation
  4. QPropertyAnimation * animPos = new QPropertyAnimation(lui, "pos");
  5. animPos->setStartState(QPoint(0,0));
  6. animPos->setEndState(QPoint(200,200));
  7. animPos->setDuration(750);
  8. animPos->setEasingCurve(QEasingCurve::InOutQuart);
  9.  
  10. // 1.2: Not So Simple Animation
  11. QPropertyAnimation * animPos = new QPropertyAnimation(lui, "pos");
  12. animPos->setStartState(QPoint(0,0));
  13. animPos->setEndState(QPoint(200,200));
  14. animPos->setDuration(750);
  15. animPos->setEasingCurve(QEasingCurve::InOutQuart);
  16.  
  17. QPropertyAnimation * animAlpha = new QPropertyAnimation(lui, "windowOpacity");
  18. animAlpha ->setStartState(0);
  19. animAlpha ->setEndState(1);
  20. animAlpha ->setDuration(750);
  21. animAlpha ->setEasingCurve(QEasingCurve::InOutQuart);
  22.  
  23. // Animate Both Properties
  24. QParallelAnimationGroup * animGroup = new QParallelAnimationGroup();
  25. animGroup->addAnimation(animPos);
  26. animGroup->addAnimation(animAlpha);
  27.  
  28. animGroup->start();
  29.  
  30. // 2: Multistate Animations
  31. QStateMachine * animCtlr = new QStateMachine();
  32. QState * root = new QState();
  33. QState * init = new QState(root);
  34. QState * inPos = new QState(root);
  35.  
  36. animCtlr->addState(root);
  37. animCtlr->setInitialState(root);
  38. root->setInitialState(init);
  39.  
  40. // Setup Inital State
  41. init->assignProperty(lui, "pos", QPoint(-200, -200));
  42. init->assignProperty(lui, "windowOpacity", 0);
  43.  
  44. // Setup Another State
  45. inPos->assignProperty(lui, "pos", QPoint(300,300));
  46. inPos->assignProperty(lui, "windowOpacity", 1);
  47.  
  48. // Animations
  49. QPropertyAnimation * animPos = new QPropertyAnimation(lui, "pos");
  50. animPos->setDuration(750);
  51. animPos->setEasingCurve(QEasingCurve::InOutQuart);
  52.  
  53. QPropertyAnimation * animAlpha = new QPropertyAnimation(lui, "windowOpacity");
  54. animAlpha->setDuration(750);
  55. animAlpha->setEasingCurve(QEasingCurve::InCurve);
  56.  
  57. // Animate Both Properties
  58. QParallelAnimationGroup * animGroup = new QParallelAnimationGroup();
  59. animGroup->addAnimation(animPos);
  60. animGroup->addAnimation(animAlpha);
  61.  
  62. // Animation Countdown: 100ms
  63. QTimer * timer = new QTimer();
  64.  
  65. // Fire State Change
  66. QAbstractTransition * trans = root->addTransition(timer, SIGNAL(timeout()), inPos);
  67. trans->addAnimation(animGroup);
  68.  
  69. timer->setSingleShot(true);
  70. timer->start(100);
  71.  
  72. animCtlr->start();