QML类型说明-Animator

本文详细介绍Qt Quick中的Animator组件,解释其工作原理、属性配置及如何应用于动画制作中,特别是其在场景渲染上的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Animator

ImportStatement:   import QtQuick2.2

Since:  Qt 5.2

 

Properties

duration : int

easing

easing.type : enumeration

easing.amplitude : real

easing.overshoot : real

easing.period : real

easing.bezierCurve : list

from : real

target : QtQuick::Item

to : real

 

DetailedDescription

Animator是直接在QtQuick的场景中操作的动画类型。它不像一般的动画和QML组件那样,当UI线程阻塞的时候,动画渲染线程也阻塞。这个特点可以在文字跑马灯上看得很清楚。在芯承荣治的6120板卡上,使用QPainter绘制的跑马灯,当字体大于200时,会变得很卡,而使用Animator,即使字体是全屏的,跑马灯依旧非常流畅。

这个类型的属性值,在动画运行的时候,不会发生变化。只有当动画运行完毕,其属性才会更新。我们可以像使用其它动画类型那样去使用它。

 

Rectangle {

    id:mixBox

    width:50

    height:50

   ParallelAnimation {

       ColorAnimation {

           target: mixBox

           property: "color"

           from: "forestgreen"

           to: "lightsteelblue";

           duration: 1000

       }

       ScaleAnimator {

           target: mixBox

           from: 2

           to: 1

           duration: 1000

       }

       running: true

    }

}

如果ParallelAnimation和SequentialAnimation的所有子动画都是Animator。那么它们会在可能的情况下,被当成一个Animator在场景中运行。

Animator可用于过渡,但不可逆。既不能倒着播。Animator不能直接用于QML文件。它为所有继承它的组件提供共同的属性和方法。直接在QML中使用Animator将导致一个错误。

 

PropertyDocumentation

duration : int

动画持续的时间,毫秒级。默认值250

 

easing group

easing.type : enumeration

easing.amplitude : real

easing.overshoot : real

easing.period : real

easing.bezierCurve : list

用于指定动画的缓和曲线。动画从开始到结束,比如开始红色,结束绿色;又比如开始在A点,结束到B点。这个动画的过程,我们用一条曲线来描述。如红色变绿色,开始我们变得快些,后面我们变得慢些,这个变化的速度曲线,就是缓和曲线,以此类推。

如指定缓和曲线,easing.type是必须需要指定的。此外,我们还可以指定动画的振幅、周期和过冲。默认的曲线是Easing.Linear。下表详细的介绍了缓和曲线。

 

Easing.Linear 速度不变,加速度为0
Easing.InQuad 从0加速,缓和曲线为t的平方(t^2)
Easing.OutQuad 减速到0,缓和曲线为t的平方(t^2)
Easing.InOutQuad 先加速,后减速,缓和曲线为t的平方(t^2)
Easing.OutInQuad 先减速,后加速,缓和曲线为t的平方(t^2)
Easing.InCubic 从0加速,缓和曲线为t的3次方(t^3)
Easing.OutCubic 减速到0,缓和曲线为t的3次方(t^3)
Easing.InOutCubic 先加速,后减速,缓和曲线为t的3次方(t^3)
Easing.OutInCubic 先减速,后加速,缓和曲线为t的3次方(t^3)
Easing.InQuart 从0加速,缓和曲线为t的4次方(t^4)
Easing.OutQuart 减速到0,缓和曲线为t的4次方(t^4)
Easing.InOutQuart 先加速后减速,缓和曲线为t的4次方(t^4)
Easing.OutInQuart 先减速后加速,缓和曲线为t的4次方(t^4)
Easing.InQuint 从0加速,缓和曲线为t的5次方(t^5)
Easing.OutQuint 减速到0,缓和曲线为t的5次方(t^5)
Easing.InOutQuint 先加速,后减速,缓和曲线为t的5次方(t^5)
Easing.OutInQuint 先减速,后加速,缓和曲线为t的5次方(t^5)
Easing.InSine

从0加速,缓和曲线为t的正弦函数(sin(t))

Easing.OutSine 减速到0,缓和曲线为t的正弦函数(sin(t))
Easing.InOutSine 先加速,后减速,缓和曲线为t的正弦函数(sin(t))
Easing.OutInSine 先减速,后加速,缓和曲线为t的正弦函数(sin(t))
Easing.InExpo 从0加速,缓和曲线为2的t次方(2^t)
Easing.OutExpo 减速到0,缓和曲线为2的t次方(2^t)
Easing.InOutExpo 先加速后减速,缓和曲线为2的t次方(2^t)
Easing.OutInExpo 先减速后加速,缓和曲线为2的t次方(2^t)
Easing.InCirc 从0加速,缓和曲线为(1-t^2)的平方根(sqrt(1-t^2))
Easing.OutCirc 减速到0,缓和曲线为(1-t^2)的平方根(sqrt(1-t^2))
Easing.InOutCirc 先加速,后减速,缓和曲线为(1-t^2)的平方根(sqrt(1-t^2))
Easing.OutInCirc 先减速,后加速,缓和曲线为(1-t^2)的平方根(sqrt(1-t^2))
Easing.InElastic

峰值衰减正弦波,峰值从0开始,可设置振幅和周期参数

Easing.OutElastic 峰值衰减正弦波,峰值衰减到0,可设置振幅和周期参数
Easing.InOutElastic

峰值衰减正弦波,峰值从0开始,半程时减少到0

 

Easing.OutInElastic

峰值衰减正弦波,峰值减少到半程,然后增加

Easing.InBack

从0开始过冲,缓和曲线(s+1)*t^3 - s*t^2)

Easing.OutBack

减少到0的过冲,缓和曲线(s+1)*t^3 - s*t^2)

Easing.InOutBack

从0开始到半程增加过冲,然后减少。缓和曲线 (s+1)*t^3 - s*t^2)

Easing.OutInBack

过冲减少到半程,然后增加,缓和曲线(s+1)*t^3 - s*t^2)

Easing.InBounce

指数衰减型反弹曲线,从0增加

Easing.OutBounce

指数衰减型反弹曲线,减少到0

Easing.InOutBounce

指数衰减型反弹曲线,先加后减

.
Easing.OutInBounce 先减后加

 

easing.amplitude这个参数只适用于Easing.InBounce、Easing.OutBounce、Easing.InOutBounce,、Easing.OutInBounce、Easing.InElastic、Easing.OutElastic、Easing.InOutElastic、Easing.OutInElastic这8种曲线

 

easing.overshoot这个参数只适用于Easing.InBack、Easing.OutBack、Easing.InOutBack、Easing.OutInBack这四种曲线

 

easing.period这个参数只适用于Easing.InElastic、Easing.OutElastic、Easing.InOutElastic、Easing.OutInElastic这四种曲线

 

easing.bezierCurve这个参数只适用于Easing.Bezier曲线。这个曲线没有放到上面的列表中。它是自定义的曲线。使用本参数控制。这个参数是3个点构成的组的列表,3个点分别为控制点1,控制点2和终点。[cx1,cy1, cx2, cy2, endx, endy,...],参数里面可以有很多个组,但这个参数的终点,必须是(1,1)

 

可同时参阅缓冲的实例

 

from : real

动画的起始值。如果一个动画被定义为过渡或行为,这个值的默认值是过渡的开始状态或行为触发的属性值。

同时参阅Animation和Transitions的类型文档。

 

target :QtQuick::Item

动画的目标组件。注意动画的目标必须是Item组件。

 

to : real

动画的终点值。如果一个动画被定义为过渡或行为。这个值的默认值是过渡的终点状态或触发行为改变后的属性值。

### 回答1: QML-QianWindow-V1版本界面是一款用户界面设计程序,它为开发人员提供了大量可自定义的UI组件,使得开发者可以轻松地创建美观、直观且易于使用的界面。QML-QianWindow-V1版本界面具有界面美观,易用性强以及可扩展性强的特点。该程序提供了多种UI组件如窗口、按钮、文本框、下拉框、进度条等等。每个组件都可以基于开发需求进行个性化设计,提高了程序的可读性和可维护性。 QML-QianWindow-V1版本界面的窗口设计功能令人称赞。用户可以定制窗口的样式、位置和大小等属性,使其符合自己的需求。同时,该程序支持类似IOS与Android风格的Tab、Panel、Dialog等视图控件,让应用的界面更具丰富性和交互性,提升用户体验。 此外,QML-QianWindow-V1版本界面可让用户通过实用的数据模型,快速地创建和管理表格和列表,包括多行、多列的表格和单选或多选列表,使得用户可以方便地处理大量数据。 总之,QML-QianWindow-V1版本界面通过提供易用性和可扩展性强的UI组件来简化界面设计过程,使得开发人员可以迅速开发出优秀的桌面应用程序界面,以满足用户高品质的界面需求。 ### 回答2: QML-Qianwindow-v1版本是一款基于QML语言开发的桌面应用程序,其主要特点是界面设计美观、简单易用,适用于多种应用场景。 该软件的主界面包含五个主要区域:侧边栏、消息中心、主视图、小部件和设置菜单。 侧边栏主要用于导航,其中包含主要的应用程序和功能,使用户可以轻松地进入不同的模块。 消息中心用于显示来自其他应用程序的通知,例如电子邮件或要完成的任务。 主视图是QML-Qianwindow-v1的核心区域,其中包含常见的功能和工具,例如打开的文件、书签和搜索栏。 小部件区域用于显示用户选择的小部件,例如天气预报和日历。 设置菜单区域包含应用程序的设置菜单,用户可以在此处更改应用程序的选项、主题和常规设置。 总体来说,QML-Qianwindow-v1版本的界面设计非常简洁,用户友好,易于使用。它增强了用户的生产力和效率,为用户提供了一种令人愉悦的使用体验。 ### 回答3: QML-QianWindow-v1是一种基于Qt QML开发的简单易用的窗口界面库。其设计风格简洁明了,适用于各种桌面应用开发。 该库主要由三个部分组成:Title Bar、Main Body和Sidebar。其中,Title Bar是窗口的标题栏,可以自定义标题、图标、按钮、菜单等。Main Body是页面的主体内容,可以显示各种控件、窗口和布局。Sidebar是侧边栏,可以显示常用的菜单、工具、快捷方式等。 在QML-QianWindow-v1中,可以使用QianWindow来创建窗口。QianWindow提供了常用的窗口操作方法,例如最小化、最大化、关闭等。同时,该库还提供了很多常用的QML组件,例如按钮、文本框、下拉框、列表框等,这些组件可以方便快捷地进行页面设计。此外,在QML-QianWindow-v1中还支持自定义样式,可以根据需要修改组件的颜色、形状、大小等。 QML-QianWindow-v1的界面设计风格简洁明了,同时具有一定的美观度。尤其是Title Bar部分的设计非常灵活,可以根据需要自由定制。Main Body部分支持多种布局方式,可以满足不同页面设计的需求。Sidebar部分则提供了丰富的快捷操作方式,提高了用户的使用效率。 总的来说,QML-QianWindow-v1是一款非常实用的界面库,可以方便快捷地进行桌面应用开发。无论是初学者还是有经验的开发者,都可以轻松使用该库进行界面设计。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值