行为 QML 类型
定义属性更改的默认动画。 更多...
导入语句 | import QtQuick |
属性
- animation : Animation
- enabled : bool
- targetProperty
(since QtQuick 2.15)
- targetProperty.name : string
(since QtQuick 2.15)
- targetProperty.object : QtObject
(since QtQuick 2.15)
- targetProperty.name : string
- targetValue : Variant
(since QtQuick 2.13)
详细描述
行为定义了在特定属性值更改时要应用的默认动画。
例如,以下行为定义了一个在任何时间 Rectangle's width
值发生变化时运行的 NumberAnimation。当 MouseArea 被点击时,宽度值会改变,触发行为的动画。
import QtQuick Rectangle { id: rect width: 100; height: 100 color: "red" Behavior on width { NumberAnimation { duration: 1000 } } MouseArea { anchors.fill: parent onClicked: rect.width = 50 } }
请注意,属性不能有多个分配的行为。要在行为内提供多个动画,请使用 ParallelAnimation 或 SequentialAnimation。
如果一个 状态变化 有一个与行为相匹配的 Transition,则该状态的 Transition 动画将覆盖该状态变化的行为。有关使用行为来动画状态变化的通用建议,请参阅 使用 Qt Quick 行为与状态。
另请参阅 Qt Quick 中的动画和过渡,行为示例 和 Qt Qml。
属性文档
animation : Animation |
此属性保存当行为被触发时要运行的动画。
enabled : bool |
此属性保存当被跟踪的属性值变化时,行为是否将被触发。
默认情况下,行为处于启用状态。
属性 | 描述 |
---|---|
name | 该属性持有由该Behavior控制的属性的名称。 |
object | 该属性持有由该Behavior控制的属性的对象。 |
此属性可用于根据所控制的属性名称或对象来定义自定义行为。
以下示例定义了在它控制的属性发生变化时,使其目标对象淡出和淡入的Behavior
// FadeBehavior.qml import QtQuick 2.15 Behavior { id: root property Item fadeTarget: targetProperty.object SequentialAnimation { NumberAnimation { target: root.fadeTarget property: "opacity" to: 0 easing.type: Easing.InQuad } PropertyAction { } // actually change the controlled property between the 2 other animations NumberAnimation { target: root.fadeTarget property: "opacity" to: 1 easing.type: Easing.OutQuad } } }
这可以用来在文本发生变化时对其进行动画处理
import QtQuick 2.15 Text { id: root property int counter text: counter FadeBehavior on text {} Timer { running: true repeat: true interval: 1000 onTriggered: ++root.counter } }
此QML属性是从QtQuick 2.15引入的。
targetValue : Variant |
该属性持有Behavior所控制的属性的目标值。该值在动画开始之前由Behavior设置。
此属性是从QtQuick 2.13引入的。
© 2024 Qt公司。本文件中所包含的文档贡献者是各自所有者的版权。本文件中的文档是根据自由软件基金会发布的GNU自由文档许可协议版本1.3的条款许可的。Qt及其相关标志是芬兰Qt公司及其在全球的子公司的商标。所有其他商标均为其各自所有者的财产。