Qt 4.8
PropertyAction Class Reference

The PropertyAction element allows immediate property changes during animation. More...

Inheritance diagram for PropertyAction:
Animation

Detailed Description

The PropertyAction element allows immediate property changes during animation.

Since
4.7

PropertyAction is used to specify an immediate property change during an animation. The property change is not animated.

It is useful for setting non-animated property values during an animation.

For example, here is a SequentialAnimation that sets the image's Image::smooth property to true, animates the width of the image, then sets Image::smooth back to false:

SequentialAnimation {
PropertyAction { target: img; property: "smooth"; value: "true" }
NumberAnimation { target: img; property: "width"; to: 300; duration: 1000 }
PropertyAction { target: img; property: "smooth"; value: "false" }
}

PropertyAction is also useful for setting the exact point at which a property change should occur during a Transition . For example, if PropertyChanges was used in a State to rotate an item around a particular Item::transformOrigin , it might be implemented like this:

Item {
width: 400; height: 400
Rectangle {
id: rect
width: 200; height: 100
color: "red"
states: State {
name: "rotated"
PropertyChanges { target: rect; rotation: 180; transformOrigin: Item.BottomRight }
}
transitions: Transition {
RotationAnimation { duration: 1000; direction: RotationAnimation.Counterclockwise }
}
MouseArea {
anchors.fill: parent
onClicked: rect.state = "rotated"
}
}
}

However, with this code, the transformOrigin is not set until after the animation, as a State is taken to define the values at the end of a transition. The animation would rotate at the default transformOrigin, then jump to Item.BottomRight. To fix this, insert a PropertyAction before the RotationAnimation begins:

transitions: Transition {
SequentialAnimation {
PropertyAction { target: rect; property: "transformOrigin" }
RotationAnimation { duration: 1000; direction: RotationAnimation.Counterclockwise }
}
}

This immediately sets the transformOrigin property to the value defined in the end state of the Transition (i.e. the value defined in the PropertyAction object) so that the rotation animation begins with the correct transform origin.

See also
{QML Animation and Transitions}, QtDeclarative

The documentation for this class was generated from the following file: