Qt Quick中的重要概念 - 状态、转换和动画
在任何现代用户界面中,UI元素在状态之间的转换以及用户界面的动画是非常重要的。这些是Qt Quick中的第一等概念。
本页介绍了状态、状态转换以及属性动画的概念。它详细说明了哪些概念很重要以及为什么,以及这些概念之间的关系。它还提供了关于Qt Quick提供的QML类型以实现这些概念的详细链接。
状态
特定可视元素的“状态”是指描述该可视元素各个组成部分如何在其中显示的信息集合,以及与该状态相关联的所有数据。用户界面中的大多数可视元素将具有有限数量的状态,每个状态都有明确定义属性。
例如,列表中的一个元素可以是选中的,也可以不选中,如果选中,它可能是当前活动的单个选择,或者它是选择组的一部分。
这些状态中每个都可能有一定的关联视觉外观(中性、突出显示、展开等)。
Qt Quick提供了一个名为State
的类型,该类型具有定义其语义的属性,可用于触发行为或动画。请参阅有关Qt Quick 状态的文档以获取更多信息。
转换
当可视元素从一个状态转换到另一个状态时,该元素的外观将发生变化。转换是两个状态之间的“边缘”。它可以触发其他事件发生,因为应用程序的其他部分可能在进入或离开特定状态时触发行为。
Qt Quick提供了一个名为Transition
的类型,该类型具有定义当应用程序从一个状态转换到另一个状态时将发生什么的属性。请参阅有关状态变化时的转换的文档以获取有关转换的更多信息。
动画
在状态之间转换时,可以使用流畅的动画来帮助用户。对视觉画布的突然和不期望的改变会导致用户体验不佳,应避免这种情况。
如果列表中的元素被选中,颜色的变化(从中性到突出显示)可以动画化。如果列表中元素的位置发生变化,它可以通过流畅的动画方式移动,从而使用户的眼睛能够跟踪变化。
Qt Quick 支持各种动画和过渡类型,这些类型的动画都适用于以下内容。请参阅Qt Quick 中的动画和过渡的文档,获取有关这些类型及其使用方法的更多信息。
动画属性赋值
动画不仅与状态和状态之间的过渡相关。例如,动画可能会由其他事件触发,这些事件与特定的状态没有关联。
通常,对视觉元素的某些属性进行动画处理是有益的,不管变化的原因是什么(例如,不透明度效果)。Qt Quick 提供了Behavior类型,允许客户端指定属性变化的动画行为。《行为》类型是QML对象属性修改器的一个示例。
有关使用Behavior类型提供默认属性变化动画的更多信息,请参阅有关默认属性动画的文档。
请注意,结合使用默认属性动画(通过Behavior类型)和状态过渡动画可能会导致行为未定义。请参阅有关与状态一起使用 Qt Quick 行为的文档,以了解更多关于此主题的信息。
动画师
Animator类型是特殊的动画类型,它绕过QML对象并在场景图上的原语上直接操作。这带来的好处是,基于Animator的动画可以在场景图的渲染线程上运行(如果适用),即使在UI被阻塞的情况下仍可以继续动画。
Qt Quick 提供以下Animator类型
- XAnimator - 动画Item的水平位置。
- YAnimator - 动画Item的垂直位置。
- ScaleAnimator - 动画Item的缩放因子。
- RotationAnimator - 动画Item的旋转。
- OpacityAnimator - 动画Item的不透明度。
- UniformAnimator - 动画ShaderEffect中的均匀值。
动画精灵
动画精灵的概念与本页其他地方使用的动画概念是分开的。如果您想创建或使用一个动画图像或精灵,请参阅有关sprite动画的文档。
© 2024 The Qt Company Ltd. 本文档中的文档贡献是各自所有者的版权。所提供的文档根据自由软件基金会的出版,以GNU 自由文档许可1.3版的条款进行许可。Qt和相应的标志是The Qt Company Ltd.在芬兰和/或在其他国家/地区的商标。所有其他商标都是其各自所有者的财产。