• qt 窗口动画


    窗口动画

    编辑删除转载 2015-10-10 14:50:27

    一个应用程序通常包含多个动画,例如,你可能希望同时移动许多graphic items或者一个个按照串行的方式的移动他们

    QAnimationGroup:动画组父类,以包含其它animations,这样这些animations可以串行或者并行的触发了

    QSequentialAnimationGroup:串行动画

    QParallelAnimationGroup:并行动画

    QPropertyAnimation​:动画类,第二个参数代表窗口树形,可以为size、windowOpacity、gemotry等等

    1、淡入淡出

    构造函数中写入如下代码:​

     1 ​animation = new QPropertyAnimation(this, "windowOpacity");
     2 
     3 animation->setDuration(3000);//动画总时间
     4 
     5 animation->setStartValue(1);//开始不透明
     6 
     7 animation->setEndValue(0);//接触时透明
     8 
     9 animation->setEasingCurve(QEasingCurve::Linear);//渐变时间曲线
    10 
    11 connect(animation, &QPropertyAnimation::finished
    12 
    13 , this, [this]{close(); });​//动画结束关闭窗口
    View Code

    setStartValue方法和setEndValue方法的参数依据类构造函数中的​propertyName参数,即第二个参数

    ​常用方法:

    start:启动动画

    pause:暂停动画

    stop:停止动画

    ​setKeyValueAt(qreal, const QVariant &),插入关键数据,到了参数1指定的位置,会出现参数2的状态

    ​setCurrentTime(int):设置当前动画时间

    ​setDirection(Direction):动画方向,Forward、Backward

    stateChanged(QAbstractAnimation::State, QAbstractAnimation::State)​:状态改变信号

    2、最小化时逐渐缩小​

    ​注意:应该在窗口外部使用,而不是构造函数中

     1 QPropertyAnimation *minimumAnimation = 
     2 
     3 new QPropertyAnimation(videoWidget, "geometry");
     4 
     5 minimumAnimation->setDuration(200);
     6 
     7 minimumAnimation->setEndValue(
     8 
     9 QRect(mapToGlobal(pos()).x() + videoCount * videoWidget->width()
    10 
    11  , mapToGlobal(pos()).y(), 0, 0)
    12 
    13 );
    14 
    15 minimumAnimation->start();
    View Code
    如果您觉得文章不错,不妨给个打赏,写作不易,感谢各位的支持。您的支持是我最大的动力,谢谢!!! 

     

      


    很重要--转载声明

    1. 本站文章无特别说明,皆为原创,版权所有,转载时请用链接的方式,给出原文出处。同时写上原作者:朝十晚八 or Twowords
    2. 如要转载,请原文转载,如在转载时修改本文,请事先告知,谢绝在转载时通过修改本文达到有利于转载者的目的。 

  • 相关阅读:
    基于jquery的弹幕实现
    Cookie在顶级域名、二级域名和三级域名之间共享的情况
    报错:Win10 这台计算机中已经安装了 .NET Framework 4.5.2/4.6.1/4.7.1等等任何版本 或版本更高的更新
    Unity中的Text内容有空格导致换行
    逆波兰表达式
    Java基础03 byte[] 与 16进制字符串之间的转换
    nacos Linux 单机模式配置
    Oracle 常用SQL
    软件安装01 Linux下redis安装
    Java基础04 JSONObject 与范型对象转换
  • 原文地址:https://www.cnblogs.com/swarmbees/p/5621496.html
Copyright © 2020-2023  润新知