Qt同时实现多个动画效果

翻到了以前写过的一个图书管理系统,里面用到的Qt的动画

在登录的时候实现按钮淡出的效果,同时移动pos和改变opacity,

声明一个QParallelAnimationGroup对象,将多个动画效果添加到group里面,再对对象进行start,就能实现多个动画效果同时进行

代码如下

void LoginWidget::initAnimation()
{
anima = new QParallelAnimationGroup;

for (int i = 0; i < ToolGroup.size(); i++)
{
QGraphicsOpacityEffect  *effect = new QGraphicsOpacityEffect;
effect->setOpacity(1);
ToolGroup[i]->setGraphicsEffect(effect);


QPoint point;
point = ToolGroup[i]->pos();
point.setY(point.y()-400);


QPropertyAnimation *animation1 = new QPropertyAnimation(ToolGroup[i], "pos");
animation1->setDuration(500);
animation1->setStartValue(ToolGroup[i]->pos());
animation1->setEndValue(point);


QPropertyAnimation *animation = new QPropertyAnimation(effect, "opacity");
animation->setDuration(500);
animation->setStartValue(1);
animation->setEndValue(0);
anima->addAnimation(animation);
anima->addAnimation(animation1);
}

}


anima->start();

由于是写的基于C/S的图书管理系统,为了方便看效果,改成了点击登录按钮就开始淡出动画


实现效果如下

Qt同时实现多个动画效果_第1张图片

你可能感兴趣的:(Qt同时实现多个动画效果)