QAbstractAnimation类

Qt中的抽象动画类(QAbstractAnimation) 然后,我们创建了一个QPropertyAnimation对象animation,指定了目标对象为label,属性为opacity(透明度)。本文介绍了QAbstractAnimation类的基本概念和用法,并提供了一个简单的淡入淡出效果的动画示例代码。通过学习和使用QAbstractAnimation,您可以在Qt应用程序中实现各种各样的动画效果,为用户提供更加丰富和生动的交互体验。其中,QAbstractAnimation是Qt中的一个抽象基类,用于实现动画效果。 阅读详情

 

QAbstractAnimation 类是所有动画的基础。

Header:#include <QAbstractAnimation>
CMake:find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake:QT += core
Inherits:QObject
Inherited By:

QAnimationGroup

QPauseAnimation

QVariantAnimation


【详细描述】

★ QAbstractAnimation类定义所有动画共享的功能,通过继承这个类,可以引入QT动画框架以便自定义动画。

★ QT中,动画的进度由当前时间   (currentLoopTime()) 以毫秒为单位给出,从动画开始 (0) 到结束 (duration()),这个进度值始终在动画播放时自动更新。用户也可以用  setCurrentTime() 设置。

★ 动画在任何时候都处于以下三种状态之一:  Running, Stopped,  Paused ,由 State 枚举定义。可以通过调用 start(), stop(), pause() 或 resume()来更改当前状态。

★ 动画在启动时将始终重置。如果暂停,它将在恢复时以相同的当前时间  current time 继续。当动画停止时,它无法恢复,但会保持其当前时间(直到再次启动)。每当其状态发生变化时,QAbstractAnimation 都会发出  stateChanged() 。

★ 动画可以通过设置属性循环任意次数。当动画的当前时间达到其  loopCount 时,它将重置当前时间并继续运行。循环计数为 1(默认值)表示动画将运行一次。请注意,持续时间为 -1 表示动画将一直运行到停止,当前时间将无限增加。当当前时间等于  duration() 且动画处于最终循环时,进入  Stopped 状态,并发出  finished() 信号。

★ QAbstractAnimation 提供子类使用的纯虚函数来跟踪动画的进度: : duration() 和updateCurrentTime()。  duration() 函数允许您报告动画的持续时间(如上所述)。动画框架在当前时间更改时调用  updateCurrentTime()。通过重新实现此功能,您可以跟踪动画进度。请注意,调用之间的间隔和调用此函数的次数均未定义,不过,它通常是每秒 60 次更新。

★ 通过重新实现  updateState(),您可以跟踪动画的状态变化,这对于不受时间驱动的动画特别有用。

参见 QVariantAnimation, QPropertyAnimation, QAnimationGroup, and The Animation Framework


【公有类型】(枚举)

enum

DeletionPolicy 

KeepWhenStopped 动画对象在停止时不会被删除。

DeleteWhenStopped 动画对象停止时会自动删除。

enum

Direction 

Forward  动画的当前时间随时间增加(即从 0 向结束/持续时间移动)。

Backward  动画的当前时间随时间减少(即从结束/持续时间移向 0)。

enum

State

Stopped  动画没有运行。这是 QAbstractAnimation 的初始状态,完成后重新进入Stopped状态。

Paused  动画暂停。

Running  动画正在运行。


【属性】

属性名简介

currentLoop : int

此属性保存动画的当前循环。默认情况下,动画的循环计数为 1,因此当前循环将始终为 0。如果循环计数为 2 并且动画运行超过其持续时间,它将在当前时间 0 和当前循环 1 处自动倒带并重新启动,依此类推。

currentTime : int

此属性描述动画的当前时间。可以通过调用 setCurrentTime 来更改当前时间,也可以调用 start() 并让动画运行,随着动画的进行自动设置当前时间。

direction : Direction

此属性在动画处于 Running 状态时保持动画的方向。

此方向指示时间是从 0 向动画持续时间移动,还是在调用  start() 后从持续时间值向 0 移动。

duration : const int

此属性保存动画的持续时间。

如果持续时间为 -1,则表示持续时间未定义。在这种情况下,将被忽略。

loopCount : int

此属性以整数形式描述动画的循环计数。默认情况下,此值为 1,表示动画应仅运行一次,然后停止。通过更改它,您可以让动画循环多次。如果值为 0,则动画将根本不运行,如果值为 -1,则动画将永远循环,直到停止。不支持在持续时间未定义的动画上循环。它只会运行一次。

state : State

动画的状态。

此属性描述动画的当前状态。当动画状态发生变化时,发出stateChanged()  信号。


【公有函数】

QAbstractAnimation(QObject *parent = nullptr)
virtual~QAbstractAnimation()
QBindable<int>bindableCurrentLoop() const
QBindable<int>bindableCurrentTime()
QBindable<QAbstractAnimation::Direction>bindableDirection()
QBindable<int>bindableLoopCount()
QBindable<QAbstractAnimation::State>bindableState() const
intcurrentLoop() const
intcurrentLoopTime() const
intcurrentTime() const
QAbstractAnimation::Directiondirection() const
virtual intduration() const = 0
QAnimationGroup *group() const
intloopCount() const
voidsetDirection(QAbstractAnimation::Direction direction)
voidsetLoopCount(int loopCount)
QAbstractAnimation::State

state() const

inttotalDuration() const

【公有槽函数】

voidpause()
voidresume()
voidsetCurrentTime(int msecs)
voidsetPaused(bool paused)
voidstart(QAbstractAnimation::DeletionPolicy policy = KeepWhenStopped)
voidstop()

【信号】

void

currentLoopChanged(int currentLoop)

当前循环改变时发送的信号。
void

directionChanged(QAbstractAnimation::Direction newDirection)

每当方向改变时都会发出此信号。newDirection是新的方向。
void

finished()

在动画停止并到达末尾后发出此信号。
void

stateChanged(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)

每当动画的状态从 oldState 更改为newState时,就会发出此信号。

【受保护函数】

virtual voidupdateCurrentTime(int currentTime) = 0
virtual voidupdateDirection(QAbstractAnimation::Direction direction)
virtual voidupdateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)

【重实现的受保护函数】

virtual boolevent(QEvent *event) override

<<<返回上一级【QObject】 

<<<返回根页面 

使用QAbstractAnimation实现图片轮换效果 首先,我们需要创建一个Qt窗口应用程序,并添加QLabel控件作为我们的主窗口。最后,我们需要为这个QLabel控件添加一个QPropertyAnimation动画对象,通过这个动画对象来实现背景图片的自动切换。通过使用QAbstractAnimation类来实现背景图片轮换效果,我们可以为我们的Qt应用程序添加一个漂亮而动感的背景。通过使用这种方法,我们可以在应用程序中添加一个漂亮的背景墙,这个背景墙可以自动的切换不同的背景图片。最后,我们在主窗口中启动了动画组合对象,并显示了我们的Qt应用程序窗口。 阅读详情

相关推荐

【Qt炫酷动画】0.Qt动画类简介

Qt动画类简介

小鱼酱的博客 1214

Qt动画框架:QAbstractAnimation

一、描述 该类定义了所有动画的通用功能。通过继承此类,可以创建自定义动画。 二、类型成员 1、enum QAbstractAnimation::DeletionPolicy KeepWhenStopped:动画对象在停止时不会被删除。 DeleteWhenStopped:动画对象停止时会自动删除。 2、enum QAbstractAnimation::Direction:此枚举描述处于运行状态时动画的方向。 Forward:动画的当前时间随时间增加(即从 0 向结束/持续时间移动)。 Back

友善啊,朋友的博客 2038

Qt 是一款功能强大、易于使用的 C++ GUI 库,广泛应用于桌面应用程序和嵌入式设备中。在 Qt 中,QAbstractAnimation 类是实现动画效果...

QAbstractAnimation 类提供了一些基本的函数,例如 setDuration() 函数可以设置动画的持续时间,start() 函数可以启动动画,pause() 函数可以暂停动画,resume() 函数可以恢复动画,stop() 函数可以停止动画。在 Qt 中,QAbstractAnimation 类是实现动画效果的基础类,可以通过继承 QAbstractAnimation 类来实现自定义动画,本文将介绍 QAbstractAnimation 类的使用方法。

. 481

Qt中文文档-QAbstractAnimation

本文首发在个人网站www.qtdoc.cn本文首发在个人网站wwwqtdoccn Qt中文文档-QAbstractAnimation 类 QAbstractAnimation 是所有的动画相关的基类 简述 公共类型 属性 public函数 公有槽 公有信号 protect函数 可以重写的protect函数 详细说明 成员变量文档 enum QAbstractAnimationDeletionPoli

公众号:张小飞那些事儿 7229

Qt之QAbstractAnimation 实现网易云音乐背景墙图片轮换效果

最近在做一个小项目,需要实现网易云音乐背景墙的轮换效果,如下: 以下是.h代码: #ifndef ANIMATEDWALLWG_H #define ANIMATEDWALLWG_H #include <QLabel> #include <QWidget> #include <QVariant> #inc...

Ilson_的博客 1570

【QT进阶】第十三章QT动画类的使用QAbstractAnimation

QPropertyAnimation 是 Qt 自带的动画类,该类可以实现简单的控件动画效果,比如对控件的移动、缩放、不透明度这些来做动画效果,下面通过几个例子来熟悉给控件添加动画。动画类的扩展性比较强,对动画比较有研究的同学可以通过上面几个简单的组合实现优美的动画,各个Group的组合也可以组合成不同的效果,期待大家的作品;完整的代码工程我都放在百度云盘的软件里面,如果需要可以自行下载;提取码:qtqt我是凉开水白菜,我们下文见~

凉开水白菜的博客 533

QAbstractAnimation Class

是 Qt 动画系统的核心,它为各种动画类提供了统一的接口和基本功能。通过继承和实现其纯虚函数,可以创建自定义的动画逻辑。是 Qt 中的一个抽象基类,用于定义动画的基本功能。它是 Qt 动画框架的核心类之一,所有动画类(如。提供了一种机制,允许你控制和定制动画的行为,例如动画的开始、停止、暂停以及动画进度的计算。返回动画时长(以毫秒为单位)。返回动画的总时长(毫秒)。

抟土成人祖,炼石补青天。眼中览银河,手可摘星辰。 925

【Qt炫酷动画】2.QAbstractAnimation抽象动画类

QAbstractAnimation抽象动画类

小鱼酱的博客 858

Qt动画框架:QAbstractAnimation、QVariantAnimation

5.1、使用 QPropertyAnimation定义一个结构体 doubleColor ,包含两种颜色,用来填充窗口的上下部分,给它设置动画,观察窗口颜色的变化。

hw5230的博客 587

【Qt开发教程】动画驱动QAnimationDriver类详解及实战应用

QAnimationDriver 提供了自定义动画帧时间控制和更新的灵活方式,通过继承和实现 QAnimationDriver,开发者可以精确控制动画的时间步长和更新逻辑,实现丰富和灵活的动画效果。结合 QAbstractAnimation 和 QAnimationGroup,可以构建更复杂和高效的动画系统,为用户提供流畅而美观的动画交互体验。在实现和优化自定义动画驱动时,注意控制时间精度和优化性能,确保动画效果的流畅性和准确性。

科技改变人类,技术成就未来 684

使用Qt框架实现网易云音乐背景墙图片轮换动画教程

在 Qt 框架中,动画是通过 QAbstractAnimation 类以及其派生类来实现的。QAbstractAnimation 提供了动画的基本框架,它定义了所有动画类共享的接口和属性。开发者可以通过继承这个抽象基类来创建自定义动画效果,但通常情况下,我们会使用更具体的派生类如 QPropertyAnimation、QParallelAnimationGroup 和 QSequentialAnimationGroup 等,来完成具体的动画任务。动画控制接口: 提供了控制动画播放状态的方法,比如。

weixin_30951515的博客 830

Qt之动画效果QAbstractAnimation

零声白金自学卡(含基础架构/高性能存储/golang/QT/音视频/Linux内核)

weixin_42114202的博客 480

LightningChart使用教程:创建 JS 散点图

这是对 LightningChart JS XY 图表一些有趣功能的快速技术研究,以及如何使用 LightningChart JS 创建嵌入式散点聊天和添加自定义交互。 此图表将可视化一个 XY 坐标列表以及一个额外的自定义属性,它只是一段文本。这些自定义属性将与 UI 文本元素一起显示,这些元素将与用户的鼠标移动交互。 我们将介绍的突出功能是: 什么是散点图? 如何创建散点图? 如何将自定义属性附加到数据点。 如何创建交互式 UI 文本元素。 最终结果 什么是散点图? 散点图或散点图是..

Augenstern__zyx的博客 1370

Qt学习-05-动画类

Qt动画架构中的主要类如下图所示: 动画框架由基类QAbstractAnimation和它的两个儿子QVariantAnimation和QAnimationGroup组成。QAbstractAnimation是所有动画类的祖宗。它包含了所有动画的基本属性。比如开始,停止和暂停一个动画的能力。它也可以接收时间改变通知。 动画框架又进一步提供了QProertyAnimation类。它继承自Q...

wengmq的博客 1842

DeepSeek-OCR 本地部署使用教程(附完整环境配置与推理示例)

DeepSeek-OCR是由DeepSeek AI推出的开源OCR模型,支持高精度文档识别与结构化输出(如Markdown转换)。本文提供了详细的本地部署指南,包括系统要求(推荐Linux+A100 GPU)、环境配置(Python 3.12.9+PyTorch 2.6.0+CUDA 11.8)、模型下载及两种推理方式:高性能的vLLM(适合批量处理)和灵活的Transformers(适合调试)。支持多种分辨率模式和提示词模板,适用于合同识别、PDF转换等场景。常见问题包括显存优化和性能调优建议。

qq_58607032的博客 6723

【EB_Tresos专题】-06-配置一个UDS诊断DID

<--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> <--返回「个人博客」首页--> <--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> <--返回「个人博客」首页--> 结尾 ...

「汽车电子助手」的博客 4085

Qt 动画详解一

<!-- @page { margin: 0.79in } P { margin-bottom: 0.08in } -->概述Qt动画架构中的主要类如下图所示:<!-- @page { margin: 0.79in } P { margin-bottom: 0.08in } -->动画框架由基类QAbstractAnimation和它的两个儿子QVariantAnimation

nkmnkm的专栏 1万+

【CC精品教程】iTwin capture倾斜摄影建模完整操作流程

【CC精品教程】iTwin capture倾斜摄影建模完整操作流程。包括:无人机航测外业作业流程(像控点布设、航线规划、仿地飞行、航拍)和内业数据处理软件(Pix4d、CC、EPS、PhotoScan、Globalmapper)像控点权重调配、空三加密、DOM、DSM、DEM,DLG生成、等高线生成、高程点提取,点云分类过滤分割、点云生成DEM、三维模型生成等。

智慧空间实验室 3959

QT动画框架(The Animation Framework)

作者:刘旭晖 Raymond 转载请注明出处 Email:colorant@163.com BLOG:http://blog.youkuaiyun.com/colorant/   QT的动画框架也是引入至QT4.6,很有可能是配合图形系统框架为了下一代UI做的铺垫 类别 个人认为,狭义的来说,Animation Framework指的是以QAbstractAnimation为基类的

zhang_sinner的专栏 762

多物理场光学仿真软件:COMSOL_(10).激光器与谐振腔仿真

定义Nd:YAG晶体的材料属性% 折射率% 吸收系数% 发射截面% 定义光泵浦源% 泵浦光波长% 泵浦光强度% 泵浦光方向% 定义全反射镜% 选择边界% 完美电导体边界条件% 定义部分反射镜% 选择边界% 反射率边界条件% 反射率通过 COMSOL 对激光器和光学谐振腔进行仿真,可以全面评估激光器的性能,包括输出功率、效率、稳定性和模式选择等。这些仿真结果为激光器的设计和优化提供了重要的参考依据。

kkchenjj的博客 1649

PowerShell 升级到 v7 并设置为默认版本(详细操作指南)

本文详细介绍了如何将PowerShell升级到v7并设为默认版本。PowerShell 7基于.NET Core构建,具有跨平台支持、性能优化和新语法特性等优势。文章提供了多种安装方法(MSI安装包、包管理器)和设置默认版本的方案(修改PATH、创建符号链接、配置编辑器等),同时涵盖企业批量部署解决方案和常见问题处理。通过升级到PowerShell 7,用户可以获得更强大的命令行体验,适用于开发、运维和自动化场景。

huluang的专栏 4292

qt同时两个动画执行_Qt动画效果的实现,QPropertyAnimation

Qt动画架构中的主要类如下图所示:动画框架由基类QAbstractAnimation和它的两个儿子QVariantAnimation和QAnimationGroup组成。QAbstractAnimation是所有动画类的祖宗。它包含了所有动画的基本属性。比如开始,停止和暂停一个动画的能力。它也可以接收时间改变通知。动画框架又进一步提供了QProertyAnimation类。它继承自QVariant...

weixin_39679468的博客 503

SentEval学习笔记

SentEval allows you to evaluate your sentence embeddings as features for the followingdownstreamtasks: Task Type #train #test needs_train set_classifier MR movie review(影评) 11k 11k 1 1 CR product review(产品评述) ...

AlphaFinance 803

C++ Qt Animation Framework 自定义动画

需要注意的是,QPropertyAnimation 类只能对 QObject 的属性进行动画处理,如果需要对 QWidget 进行动画处理,可以使用 QWidget 的 geometry、pos、size 等属性。需要注意的是,自定义动画类只是一个示例,实际上我们可以根据自己的需求来实现不同的动画效果。在这个例子中,我们将目标对象设置为一个 QWidget 对象,并将属性名称设置为 "geometry",表示对 QWidget 对象的位置和大小进行动画处理。然后设置动画的持续时间,并启动动画。

Hello___Sunshine的专栏 1245

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

详解Qt的动画框架(一)

Qt的动画框架是在4.6版本引入的。通过Qt动画属性,Qt动画框架为部件和其他QObject对象的动画操作提供了非常大的自由性。Qt动画框架也能用于图形视图框架中。以下是Qt中的有关动画框架类的类视图: Qt的动画框架的Base是由QAbstactionAnimation以及它的两个子类QVariantAnimation和QAnimationGroup组成。QAbstractAnimatio

我只是一个单纯的2的博客 5798

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

上一篇: QPaintEvent类
下一篇: QTimer类
floatbit
博客等级 码龄24年 460粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值