当前位置:   article > 正文

Qt界面切换动画SDK--开篇介绍_qstackedwidget实现点击切换窗口滑动动画

qstackedwidget实现点击切换窗口滑动动画

       为了实现封装QWidget及其子类界面切换动画流程,满足开发过程中一键套用即可满足不同界面切换的效果,先展示切换效果:

      其中包含库的封装,动画算法实现(需要持续新增)

对QWidget及QStatckWidget等类封装,便于动画接口调用

先展示部分代码:

  1. #ifndef ANIMATIONSTACKEDWIDGET_H
  2. #define ANIMATIONSTACKEDWIDGET_H
  3. #include <QStackedWidget>
  4. #include <QVariant>
  5. class QPropertyAnimation;
  6. class AnimationStackedWidget : public QStackedWidget
  7. {
  8. Q_OBJECT
  9. public:
  10. explicit AnimationStackedWidget(QWidget *parent = 0);
  11. ~AnimationStackedWidget();
  12. protected:
  13. void paintEvent(QPaintEvent *);
  14. public slots:
  15. //前一页
  16. void next();
  17. //下一页
  18. void forward();
  19. void onAnimaFinish();
  20. private:
  21. void initWidgetsSize();
  22. private:
  23. bool _isAnimation; //是否正在动画
  24. int _widgetCount; //保存当前StackWidget里面的子成员数
  25. int _nextIndex; //下一个要切换的索引
  26. bool _next;
  27. int _m_currenAnimationType;
  28. };
  29. #endif // ANIMATIONSTACKEDWIDGET_H

AnimationStackedWidget 继承QStackedWidget,其中调用动画封装好的SDK即可实现相关动画。需要处理的无非就是paintevent函数

  1. void AnimationStackedWidget::paintEvent(QPaintEvent *e)
  2. {
  3. if( _isAnimation )
  4. {
  5. QPainter paint(this);
  6. //绘制下一个widget
  7. AnimationMin->doAnimationFunctionNext( _next,paint );
  8. //绘制当前Widget
  9. AnimationMin->doAnimationFunctionCur( _next,paint );
  10. }
  11. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/81556
推荐阅读
相关标签
  

闽ICP备14008679号