Qt 中的动画(Animations)

Qt中的动画包含以下内容

  1. States: 状态
  2. Transitions: 过渡
  3. Animations: 动画

概述

动画用户实现属性值缓慢变化到目标值,可以应用各种类型的缓动曲线。状态时一个对象的各种属性的配置的一个集合。过渡用来定义从一个状态切换到另一个状态时如何过渡,可以在过渡中包含动画来实现过渡。

动画

Animation是一个抽象类,下面定义了一些具体类用于各种情况。
包含以下几个:
4. SequentialAnimation:动画组,里面定义一系列的动画,按定义先后次序执行
5. ParallelAnimation:动画组,里面定义一系列动画,所有动画并行执行
6. AnchorAnimation:针对Anchor属性改变的动画,与State配合时,和AnchorChanges一起配合用
7. ColorAnimation:针对颜色的动画
8. NumberAnimation:针对数值类改变的动画
9. ParentAnimation:针对改变父对象的动画,与State配合时,和ParentChange一起配合用
10. PathAnimation: 创建动画是对象沿着Path对象定义的路径运动
11. PropertyAnimation:通用的属性改变的动画,与State配合时,和PropertyChanges一起配合用,(优先使用针对特定属性的动画)
12. RotationAnimation : 针对旋转的动画
13. Vector3dAnimation:针对 QVector3d数值改变的动画
14. PropertyAction:立即改变属性值到目标值,不应用动画效果
15. PauseAnimation:暂停一段时间
16. SmoothedAnimation:平滑动画,使用ease in/out quad缓动曲线
17. SpringAnimation:弹簧效果的动画
18. ScriptAction:在动画效果中执行脚本

动画的使用方式

  1. 在Transition中
Rectangle {id: rectwidth: 100; height: 100color: "red"states: State {name: "moved"PropertyChanges { target: rect; x: 50 }}transitions: Transition {PropertyAnimation { properties: "x,y"; easing.type: Easing.InOutQuad }}
}
  1. 在Behavior中
Rectangle {width: 100; height: 100color: "red"Behavior on x { PropertyAnimation {} }MouseArea { anchors.fill: parent; onClicked: parent.x = 50 }
}
  1. 作为属性值的source
Rectangle {width: 100; height: 100color: "red"SequentialAnimation on x {loops: Animation.InfinitePropertyAnimation { to: 50 }PropertyAnimation { to: 0 }}
}
  1. 在信号处理器中
MouseArea {anchors.fill: theObjectonClicked: PropertyAnimation { target: theObject; property: "opacity"; to: 0 }
}
  1. 单独使用
Rectangle {id: theRectwidth: 100; height: 100color: "red"// this is a standalone animation, it's not running by defaultPropertyAnimation { id: animation;target: theRect;property: "width";to: 30;duration: 500 }MouseArea { anchors.fill: parent; onClicked: animation.running = true }
}

过渡

用来定义过渡动画

状态

属性配置集合:StateGroup可以支持非Item类型,State只能用于Item类型

  1. AnchorChanges:锚定方式改变
  2. ParentChange:父对象改变
  3. PropertyChanges:属性改变
  4. StateChangeScript:状态中执行脚本
Rectangle {id: signalwidth: 200; height: 200state: "NORMAL"states: [State {name: "NORMAL"PropertyChanges { target: signal; color: "green"}PropertyChanges { target: flag; state: "FLAG_DOWN"}},State {name: "CRITICAL"PropertyChanges { target: signal; color: "red"}PropertyChanges { target: flag; state: "FLAG_UP"}}]
}

Qt 中的动画(Animations)相关推荐

  1. qt中实现左右分割线_一种快速刷新richedit中内嵌动画的方法的实现

    在IM中使用动画表情是一种非常有趣的方式,然而选择一种合适的方式来实现却并不容易. 一般来说,除了自己去实现一个富文本控件,目前主要的解决方案有3种: 1.使用浏览器做容器. 2.使用QT提供的Ric ...

  2. 在Qt中制作入门动画-1

    1,Qt中的属性动画 2,使用曲线控制属性动画 3,创建动画组 4,创建嵌套动画组 5,QT中的状态机 6,QML中的状态,转变,动画. 8,动画属性所用的动画器 9,图元动画 通过QT强大的动画框架 ...

  3. python 动画场景_Python GUI教程(十五):在PyQt5中使用动画

    QT作为一个全面的桌面应用程序开发包,其自然提供了对图像的动画支持.本篇文章中,就来简单地在PYQt5中使用Animation动画功能. 本篇将会依次完成以下功能: 在GUI界面中显示一个图片(用一个 ...

  4. Silverlight Blend动画设计系列五:故事板(StoryBoards)和动画(Animations)

    原文:Silverlight & Blend动画设计系列五:故事板(StoryBoards)和动画(Animations) 正如你所看到的,Blend是一个非常强大的节约时间的设计工具,在Bl ...

  5. 【Flutter】Animation 动画 ( Flutter 动画基本流程 | 创建动画控制器 | 创建动画 | 设置值监听器 | 设置状态监听器 | 布局中使用动画值 | 动画运行 )

    文章目录 一.创建动画控制器 二.创建动画 三.设置值监听器 四.设置状态监听器 五.布局中使用动画值 六.动画运行 七.完整代码示例 八.相关资源 Flutter 动画基本流程 : ① 创建动画控制 ...

  6. 在Qt中使用C++代码创建界面

    好儿郎~志在四方 Qt视频教程地址:http://space.bilibili.com/84360636/#!/index 目录视图 摘要视图 订阅 图灵赠书--程序员11月书单    [思考]Pyt ...

  7. QT+OpenCV照片动画风格转换

    前言 用OpenCV将摄像头采集到的图片转换成动画风格,加上了QT界面.这个小实验并不复杂,后面直接贴代码. 代码 在QT creator中建的工程,只上部分比较重要的代码了,其他都是一样的. mai ...

  8. Qt Creator制作动画

    Qt Creator制作动画 制作动画 创建时间表 将动画绑定到状态 管理关键帧 浏览时间轴 设置关键帧值 观看动画 编辑缓和曲线 将缓和曲线附加到关键帧 自定义缓和曲线 编辑动画曲线 旋转项目 制作 ...

  9. Android中的动画

    视频课:https://edu.csdn.net/course/play/7621 学习内容 Ø 帧动画 Ø 补间动画 Ø 动画方式切换组件 能力目标 Ø 掌握Android中动画的基本概念及分类 Ø ...

最新文章

  1. VTK:PolyData之PointSource
  2. idea使用dababase tools时导出db2建表语句,索引显示错误
  3. Win7系统防火墙设置方法
  4. python分类器鸢尾花怎么写_python机器学习基础教程:鸢尾花分类
  5. 纯java程序jdbcjar包放在哪_oracle 11g jdbc jar包在哪个文件目录
  6. 做游戏,学编程(C语言) 21 台球
  7. ofo 彻底凉凉。。。
  8. 大数据Hadoop之——Hadoop图形化管理系统Hue(Hue环境部署)
  9. 格拉布斯法—异常值判断(异常值)
  10. vue加d3js实现3d饼图
  11. Python爬虫——Scrapy Spiders
  12. java locale zh_国际化:Java平台下的Locale类
  13. vue中SEO(搜索引擎优化)
  14. Yuga Labs收购CryptoPunks 的始末是怎么样的?
  15. 【Chrome插件】广告屏蔽神器 Adblock Plus使用教程
  16. 菜鸟教程 MarkDown语法
  17. 健康——基本运动的卡路里计算公式
  18. 中关村往事——和瑞星王莘的午夜聊天
  19. 第十一章.软件工程(下)
  20. “癞子”式的项目经理

热门文章

  1. 安装widows和linux双系统,启动项问题
  2. fabric网络搭建问题汇集
  3. JASS代码加翻译(第八篇)
  4. MATLAB马尔科夫决策过程遗传,科学网—【RL系列】马尔可夫决策过程与动态编程笔记 - 管金昱的博文...
  5. 关于Xilinx Docnav 使用这些事
  6. Email发送 带附件和抄送人
  7. 工程经济学 4 不确定性与风险分析
  8. 网上商城电子购物网站
  9. Facebook新功能:自动识别哪些李鬼账号假冒您
  10. excel中如何将一列单元格里的内容分成多列