setTargetObject(window());Animation->setPropertyName("windowOpaci_qt 动画类">
当前位置:   article > 正文

qt动画类学习_qt 动画类

qt 动画类

Qt动画类 QPropertyAnimation

显示动画

QPropertyAnimation *animation = new QPropertyAnimation(window(), "windowOpacity");
或者
QPropertyAnimation *animation= new QPropertyAnimation();
Animation->setTargetObject(window());
Animation->setPropertyName("windowOpacity");
  • 1
  • 2
  • 3
  • 4
  • 5

第一个参数是需要进行动画的窗体,第二个参数是要进行的操作(渐变出现,移动位置,逐渐放大放小等功能)。
windowOpacity:逐渐出现和逐渐消失动画
//界面动画,改变透明度的方式出现0 - 1渐变

QPropertyAnimation *animation = new QPropertyAnimation(window(), "windowOpacity");
animation->setEasingCurve(QEasingCurve::NCurveTypes);//线性
animation->setDuration(1000);//为期1分钟完成
animation->setStartValue(0);//开始是全部隐藏
animation->setEndValue(1);//结束是全部显现
animation->start(QAbstractAnimation::DeleteWhenStopped);//结束时自动释放资源
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

移动动画

Pos:移动动画
//界面动画效果移动

QPropertyAnimation *animation = new QPropertyAnimation(m_bottomToolbar, "pos");
animation->setDuration(200);//0.2秒完成
animation->setEasingCurve(QEasingCurve::NCurveTypes);//线性
animation->setStartValue(QPoint((width() - m_bottomToolbar->width()) / 2, m_bottomToolbar->y()));//开始位置
animation->setEndValue(QPoint((width() - m_bottomToolbar->width()) / 2, height() - m_bottomToolbar->height() - 10));//结束位置
animation->start(QAbstractAnimation::DeleteWhenStopped);//结束时自动释放资源
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

放大缩小

size:放大或者缩小
QPropertyAnimation *animation=new QPropertyAnimation(window(), "size");
animation->setDuration(200);//时间0.2秒
QDesktopWidget* desktopWidget = QApplication::desktop();
QRect screenRect = desktopWidget->screenGeometry(); //屏幕区域
int w = screenRect.width();
int h = screenRect.height();
QSize a(window()->size());
animation->setStartValue(QSize(window()->size()*0.9));//初始大小
animation->setEndValue(QSize(w,h));//结束大小
animation->start(QAbstractAnimation::DeleteWhenStopped);//完成时回收资源
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

大小和位置的改变

geometry:大小和位置的改变
//大小和位置
    /*  声明动画类,并将控制对象 this (this一定是继承自QObject的窗口部件)  以及属性名 "geometry" 传入构造函数  */  
    QPropertyAnimation* animation = nenw QPropertyAnimation(this, "geometry");  
    /*  设置动画持续时长为 2 秒钟  */  
    animation->setDuration(2000);  
    /*  设置动画的起始状态 起始点 (1,2)  起始大小 (3,4)  */  
    animation->setStartValue(QRect(1, 2, 3, 4));  
    /*  设置动画的结束状态 结束点 (100,200)  结束大小 (300,400)  */  
    animation->setsEndValue(QRect(100, 200, 300, 400));  
    /*  设置动画效果  */  
   animation->setEasingCurve(QEasingCurve::OutInExpo);  
    /*  开始执行动画 QAbstractAnimation::DeleteWhenStopped 动画结束后进行自清理(效果就好像智能指针里的自动delete animation) */  
    animation->stsart(QAbstractAnimation::DeleteWhenStopped);  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/299604
推荐阅读
相关标签
  

闽ICP备14008679号