主要用到了QPropertyAnimation这个类
形状和大小很简单直接设置就好
如:QPropertyAnimation *logo_text_animaton_geo;//渐变动画类
logo_text_animaton_geo = new QPropertyAnimation(logo_text_lab,"geometry",this);
logo_text_animaton_geo->setDuration(AnimationTime);
logo_text_animaton_geo->setStartValue(rect开始);
logo_text_animaton_geo->setEndValue(rect结束);
// 缓和曲线风格,这个有好多钟,自己可以看看
logo_text_animaton_geo->setEasingCurve(QEasingCurve::InCurve);
//logo_text_animaton_geo ->start(QAbstractAnimation::DeleteWhenStopped); //播放完就释放空间,这个也有好多种自己看
渐变没有现成的对控件的设置 只能让控件绑定一个QGraphicsOpacityEffect 再用动画类对其设置
如: QGraphicsOpacityEffect *logo_text_opacity;//渐变控制类
QPropertyAnimation *logo_text_animaton_opacity;//形状大小动画类
//加入透明类控制
logo_text_lab = ui.logo_text_lab;
logo_text_opacity = new QGraphicsOpacityEffect(logo_text_lab);
logo_text_opacity->setOpacity(0.1);
logo_text_lab->setGraphicsEffect(logo_text_opacity);
logo_text_animaton_opacity = new QPropertyAnimation(logo_text_opacity, "opacity", this);
logo_text_animaton_opacity->setDuration(AnimationTime);
logo_text_animaton_opacity->setStartValue(0.1);
logo_text_animaton_opacity->setEndValue(1.0);
//放入一个group实现动画同时播放
QParallelAnimationGroup *animation_group;
animation_group = new QParallelAnimationGroup;
animation_group->addAnimation(logo_text_animaton_geo);
animation_group->addAnimation(logo_text_animaton_opacity);
animation_group->start();