您的位置:首页 > 文旅 > 旅游 > 郑州新闻最新消息新闻_网络推广需要做哪些工作_营销广告文案_百度网盘下载速度慢破解方法

郑州新闻最新消息新闻_网络推广需要做哪些工作_营销广告文案_百度网盘下载速度慢破解方法

2024/12/23 11:57:22 来源:https://blog.csdn.net/ckg3824278/article/details/144233374  浏览:    关键词:郑州新闻最新消息新闻_网络推广需要做哪些工作_营销广告文案_百度网盘下载速度慢破解方法
郑州新闻最新消息新闻_网络推广需要做哪些工作_营销广告文案_百度网盘下载速度慢破解方法
1、概述

QPauseAnimation是Qt框架中的一个类,专门用于在动画序列中添加暂停效果。它继承自QAbstractAnimation,允许在动画组或动画序列中指定一个时间段的暂停。这对于创建复杂的动画序列非常有用,可以让动画在特定时刻暂停并保持状态。通过在QSequentialAnimationGroup或QParallelAnimationGroup中使用QPauseAnimation,可以精确地控制动画的播放节奏,使动画效果更加自然和流畅。

2、重要方法

QPauseAnimation类的主要方法包括:

  • setDuration(int msecs):设置暂停的持续时间,单位为毫秒。暂停时间不应为负数,默认时间是250毫秒。

此外,QSequentialAnimationGroup提供了便利的方法addPause()和insertPause(),可以直接在动画组中添加指定毫秒数的暂停,而无需显式创建QPauseAnimation对象。

3、重要信号

QPauseAnimation类本身没有特定的信号,但它继承自QAbstractAnimation,因此具有QAbstractAnimation类的信号。这些信号可以用于监控动画的状态变化,例如动画开始、停止、暂停等。常用的信号包括:

  • stateChanged(QAbstractAnimation::State newState, QAbstractAnimation::State oldState):当动画的状态发生变化时发出。newState表示新的状态,oldState表示旧的状态。
4、常用枚举类型

QPauseAnimation类本身没有定义新的枚举类型,但它继承自QAbstractAnimation,因此具有QAbstractAnimation类定义的枚举类型。其中,最重要的是QAbstractAnimation::State枚举,它表示动画的当前状态,包括:

  • QAbstractAnimation::Stopped:动画已停止。
  • QAbstractAnimation::Paused:动画已暂停。
  • QAbstractAnimation::Running:动画正在运行。
#include <QApplication>
#include <QLabel>
#include <QPropertyAnimation>
#include <QPauseAnimation>
#include <QSequentialAnimationGroup>int main(int argc, char *argv[])
{QApplication app(argc, argv);QWidget window;window.setFixedSize(400, 300);QLabel *label = new QLabel("Hello, QPauseAnimation!", &window);label->setGeometry(50, 100, 200, 50);label->setAlignment(Qt::AlignCenter);// 创建属性动画,改变label的geometry属性QPropertyAnimation *animation1 = new QPropertyAnimation(label, "geometry");animation1->setDuration(1000);animation1->setStartValue(QRect(50, 100, 200, 50));animation1->setEndValue(QRect(150, 100, 200, 50));// 创建暂停动画QPauseAnimation *pauseAnimation = new QPauseAnimation(&window);pauseAnimation->setDuration(1000);// 创建另一个属性动画,继续改变label的geometry属性QPropertyAnimation *animation2 = new QPropertyAnimation(label, "geometry");animation2->setDuration(1000);animation2->setStartValue(QRect(150, 100, 200, 50));animation2->setEndValue(QRect(250, 100, 200, 50));// 创建串行动画组,并添加动画QSequentialAnimationGroup *animationGroup = new QSequentialAnimationGroup(&window);animationGroup->addAnimation(animation1);animationGroup->addAnimation(pauseAnimation);animationGroup->addAnimation(animation2);// 设置动画循环次数animationGroup->setLoopCount(2);// 启动动画animationGroup->start();window.show();return app.exec();
}

觉得有帮助的话,打赏一下呗。。

           

需要商务合作(定制程序)的欢迎私信!! 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com