qt5--动画

位置和大小动画 

this->resize(500,500);
        QLabel* label=new QLabel("动画",this);
        label->move(10,10);
        label->setStyleSheet("background-color: rgb(255, 251, 100)");    //设置背景色

        QPropertyAnimation *animation = new QPropertyAnimation(label, "geometry"); //创建属性动画对象
        //参数1:动画作用的QObject对象;也可以用setTargetObject函数来设置
        //参数2:要用来动画的属性;也可以用setPropertyName函数来设置
        animation->setDuration(10000);  //设置这个动画的时长--单位:毫秒
        int n=animation->duration();  //返回动画的作用时间--单位:毫秒
        animation->setStartValue(QRect(0, 0, 200, 200));  //设置动画的起始坐标与大小
        animation->setKeyValueAt(0.4, QRect(20, 250, 20, 30)); //在40%的位置插入
        animation->setEndValue(QRect(450, 450, 100, 30));  //设置动画的结束坐标与大小
        animation->setEasingCurve(QEasingCurve::OutBounce);  //设置动画效果
        //QEasingCurve枚举值参看assistant.exe
        animation->start();  //动画开始

 

 

动画组 

    this->resize(500,500);
    QLabel* label=new QLabel("AAA",this);
    QLabel* label1=new QLabel("BBB",this);

    label->setStyleSheet("background-color: rgb(255, 0, 0)");
    label1->setStyleSheet("background-color: rgb(0, 0, 255)");
    QPropertyAnimation *animation = new QPropertyAnimation(label, "geometry");
    QPropertyAnimation *animation1 = new QPropertyAnimation(label1, "geometry");
    animation->setDuration(10000);
    animation1->setDuration(10000);
    animation->setStartValue(QRect(0, 0, 100, 30));
    animation->setEndValue(QRect(450, 450, 100, 30));
    animation1->setStartValue(QRect(450, 450, 100, 30));
    animation1->setEndValue(QRect(0, 0, 100, 30));

/*动画组分为两种分别为串行和并行,对应于QAnimationGroup的两个子类QSequentialAnimationGroup和QParallelAnimationGroup
串行动画第一个执行完毕才会执行第二个;并行动画,一起执行
需要  #include <QSequentialAnimationGroup>  或#include <QParallelAnimationGroup>
*/

    QSequentialAnimationGroup* group=new QSequentialAnimationGroup;  //创建动画组
    group->addAnimation(animation);    //添加动画
    group->addAnimation(animation1);
    group->start();  //启动动画组

 

 

 

 

 

 

 

qt5--动画

相关文章:

  • 2021-08-18
  • 2021-07-28
  • 2022-12-23
  • 2021-05-08
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-12-26
  • 2021-04-20
  • 2022-12-23
  • 2021-10-07
  • 2022-12-23
相关资源
相似解决方案