qt QPauseAnimation详解

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();
}

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

           

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/484442.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【热门主题】000076 探索单片机的奥秘:原理、编程与应用全解析

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 【热…

SpringMVC(1)

前言 1. SpringMVC简介 2. 入门案例 第一步导入坐标&#xff0c;SpringMVC和servlet 这样其实就把我们要用的Spring相关的都用上了 第三步就是加载这个bean 写配置类 第四步做一个Tomcat容器启动的配置 还要加上Tomcat插件 我们在创建一个快捷方式 注意由于我的JDK版本高…

jenkins+github+springboot自动部署

背景&#xff1a; 最近看流水线有点意思&#xff0c;就说自己也搞一套。 预期效果&#xff1a; idea提交代码后&#xff0c;GitHub接收&#xff0c;jenkins自动部署。【后续加个自动部署时的代码检查、单元测试、安全测试、sonarqube】 思路分析: idea上的spring代码push到gi…

RabbitMQ 客户端 连接、发送、接收处理消息

RabbitMQ 客户端 连接、发送、接收处理消息 一. RabbitMQ 的机制跟 Tcp、Udp、Http 这种还不太一样 RabbitMQ 服务&#xff0c;不是像其他服务器一样&#xff0c;负责逻辑处理&#xff0c;然后转发给客户端 而是所有客户端想要向 RabbitMQ服务发送消息&#xff0c; 第一步&a…

MSSQL2022的一个错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.16.0”提供程序

MSSQL2022导入Excel的一个错误&#xff1a;未在本地计算机上注册“Microsoft.ACE.OLEDB.16.0”提供程序 一、导入情况二、问题发现三、问题解决 最近在安装新版SQLServer SSMS 2022后&#xff0c;每次导入Excel都会出现错误提示&#xff1a;未在本地计算机上注册“Microsoft.AC…

GPT 1到4代的演进笔记

1. GPT-1 标题是 Improving Language Understanding by Generative Pre-Training. 发表于 2018.02, 比 bert(发布于 2018.10) 早了半年. 1.1 动机 困难:NLU 任务是多样的, 有 {textual entailment, question answering, semantic similarity assessment, document classifica…

【06】 MySQL 数据表的约束都有哪些?理解与实践

文章目录 1. 主键约束&#xff08;Primary Key&#xff09;2. 外键约束&#xff08;Foreign Key&#xff09;3. 唯一约束&#xff08;Unique&#xff09;4. 非空约束&#xff08;Not Null&#xff09;5. 默认值约束&#xff08;Default&#xff09;6. 检查约束&#xff08;Chec…

element-ui的下拉框报错:Cannot read properties of null (reading ‘disabled‘)

在使用element下拉框时&#xff0c;下拉框option必须点击输入框才关闭&#xff0c;点击其他地方报错&#xff1a;Cannot read properties of null (reading disabled) 造成报错原因&#xff1a;项目中使用了el-dropdown组件&#xff0c;但是在el-dropdown里面没有定义el-dropdo…

工业—使用Flink处理Kafka中的数据_ChangeRecord1

使用 Flink 消费 Kafka 中 ChangeRecord 主题的数据,当某设备 30 秒状态连续为 “ 预警 ” ,输出预警 信息。当前预警信息输出后,最近30

丹摩征文活动 | AI创新之路,DAMODEL助你一臂之力GPU

目录 前言—— DAMODEL&#xff08;丹摩智算&#xff09; 算力服务 直观的感受算力提供商的强大​ 平台功能介绍​ 镜像选择 云磁盘创建 总结 前言—— 只需轻点鼠标,开发者便可拥有属于自己的AI计算王国 - 从丰富的GPU实例选择,到高性能的云磁盘,再到预配置的深度学习…

Java程序调kubernetes(k8s1.30.7)core API简单示例,并解决403权限验证问题,即何进行进行权限授权以及验证

简单记录问题 一、问题描述 希望通过Java程序使用Kubernetes提供的工具包实现对Kubernetes集群core API的调用&#xff0c;但是在高版本上遇见权限验证问题4xx。 <dependency><groupId>io.kubernetes</groupId><artifactId>client-java</artifact…

微信小程序wx.showShareMenu配置全局分享功能

在app.js文件中配置如下即可&#xff1a; onLaunch() {//开启分享功能this.overShare()},/*** 开启朋友圈分享功能* 监听路由切换/自动执行*/overShare() {wx.onAppRoute((res) > {// console.log(route, res)let pages getCurrentPages()let view pages[pages.length - …

生信软件开发1 - 设计一个简单的Windwos风格的GUI报告软件

1. 安装基础库 使用Windows 11标题样式和主题自定义UI窗口库pywinstyles&#xff08;github: https://github.com/Akascape/py-window-styles&#xff09;&#xff0c;结合python自带tkinter库设计一个报告GUI软件。 pip install pywinstyles2. 设计一个简单的Windwos风格的G…

【PlantUML系列】类图(一)

目录 一、类 二、接口 三、抽象类 四、泛型类 五、类之间的关系 六、添加注释 七、包图 八、皮肤参数 一、类 使用class关键字定义类&#xff0c;类名后跟大括号&#xff0c;声明类的属性和方法。 属性&#xff1a;格式为{visibility} attributeName : AttributeType…

复现SMPLify-X: Ubuntu22.04, Cuda-11.3, GPU=3090Ti

Env: 3090Ti CUDA 最低支持版本需要>cuda-11.1 Ubuntu 22.04 Installation: Installing CUDA11.3 wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run sudo sh cuda_11.3.0_465.19.01_linux.run …

数据库实验7

数据库实验7 0 建立登录名用SSMS工具建立登录名用T-SQL语句建立登录名 1 删除登录名用SSMS工具实现用T-SQL语句实现 2 建立数据库用户用SSMS工具实现用T-SQL语句实现 3 删除数据库用户用SSMS工具实现用T-SQL语句实现 4 管理用户权限用SSMS工具实现用T-SQL语句实现 5 建立用户定…

4.5 TCP 报文段的首部格式

欢迎大家订阅【计算机网络】学习专栏&#xff0c;开启你的计算机网络学习之旅&#xff01; 文章目录 前言1 TCP 报文段的基本结构2 固定部分2.1 源端口与目的端口2.2 序号2.3 确认号2.4 数据偏移2.5 保留字段2.6 控制位2.7 窗口2.8 检验和2.9 紧急指针 3 可变部分3.1 选项3.2 填…

青听云音乐项目总结

前言 先来介绍一下我的项目&#xff1a;青听云音乐&#xff0c;几乎完全参考网易云音乐网页版实现&#xff0c;使用的技术栈有SpringBoot、SpringCloud、Mybatis、Mybatis-Plus、Redis、Elasticsearch、RabbitMQ、Docker&#xff0c;也包括一些小技术的使用&#xff0c;比如 j…

openssl的运用

一、概述 Opssl是一个用于TLS/SSL协议的工具包&#xff0c;也是一个通用密码库。 包含了国密sm2 sm3 sm4&#xff0c;包含了对称加密&#xff0c;非对称加密&#xff0c;单项散列&#xff0c;伪随机、签名&#xff0c;密码交换&#xff0c;证书等一些算法库。 为了深层次的学习…

房屋租赁系统源码 SpringBoot + Vue 实现全功能解析

这是一套使用 SpringBoot 与 Vue 开发的房屋租赁系统源码,站长分析过这套源码,推测其原始版本可能是一个员工管理系统,经过二次开发后,功能被拓展和调整,现已完全适用于房屋租赁业务。 该系统功能完善,涉及房屋销售、租赁管理等。站长在测试部署过程中,发现源码结构清晰…