头文件:
#ifndef CPROPERTYANIMATIONTEST_H
#define CPROPERTYANIMATIONTEST_H
#include<QWidget>
#include<QPropertyAnimation>
#include <QParallelAnimationGroup>
class CPropertyAnimationTest:public QWidget
{
    Q_OBJECT
public:
    CPropertyAnimationTest(QWidget *parent=nullptr);
    QPropertyAnimation *m_animation;
    QPropertyAnimation *m_animation2;
    QAnimationGroup *m_animationGroup;
};
#endif // CPROPERTYANIMATIONTEST_H源文件:
#include "cpropertyanimationtest.h"
#include<QPushButton>
CPropertyAnimationTest::CPropertyAnimationTest(QWidget *parent):QWidget(parent)
{
    resize(600,400);
    m_animationGroup = new QParallelAnimationGroup(this);
    QPushButton *btn=new QPushButton("0",this);
    btn->resize(60,30);
    QPushButton *btn2=new QPushButton("1",this);
    btn2->resize(60,30);
    btn2->move(btn->pos().x()+btn->width()+50,0);
    QPushButton *start=new QPushButton("开始",this);
    start->resize(60,30);
    start->move(0,height()>height());
    m_animation=new QPropertyAnimation;
    m_animation->setTargetObject(btn);
    m_animation->setPropertyName("pos");
    m_animation->setDuration(300);
    m_animation2=new QPropertyAnimation;
    m_animation2->setTargetObject(btn2);
    m_animation2->setPropertyName("pos");
    m_animation2->setDuration(300);
    m_animationGroup->addAnimation(m_animation);
    m_animationGroup->addAnimation(m_animation2);
    connect(start,&QPushButton::clicked,this,[=](){
        if(btn->pos().x()>width())
        {
            m_animation->setStartValue(QPoint(0,0));
            btn->move(QPoint(0,0));
        }
        else
            m_animation->setStartValue(btn->pos());
        m_animation->setEndValue(QPoint(btn->pos().x()+btn->width()+50,0));
        if((btn2->pos().x())>width())
        {
            m_animation2->setStartValue(QPoint(0,0));
            btn2->move(QPoint(0,0));
        }
        else
            m_animation2->setStartValue(btn2->pos());
        m_animation2->setEndValue(QPoint(btn2->pos().x()+btn2->width()+50,0));
        m_animationGroup->start();
    });
}                
                










