Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QML PropertyAnimation Element

The PropertyAnimation element animates changes in property values. More...

Inherits Animation

Inherited by ColorAnimation, NumberAnimation, RotationAnimation, and Vector3dAnimation.

This element was introduced in Qt 4.7.

Properties

Detailed Description

PropertyAnimation provides a way to animate changes to a property's value.

It can be used to define animations in a number of ways:

  • In a Transition

    For example, to animate any objects that have changed their x or y properties as a result of a state change, using an InOutQuad easing curve:

     Rectangle {
         id: rect
         width: 100; height: 100
         color: "red"
    
         states: State {
             name: "moved"
             PropertyChanges { target: rect; x: 50 }
         }
    
         transitions: Transition {
             PropertyAnimation { properties: "x,y"; easing.type: Easing.InOutQuad }
         }
     }
  • In a Behavior

    For example, to animate all changes to a rectangle's x property:

     Rectangle {
         width: 100; height: 100
         color: "red"
    
         Behavior on x { PropertyAnimation {} }
    
         MouseArea { anchors.fill: parent; onClicked: parent.x = 50 }
     }
  • As a property value source

    For example, to repeatedly animate the rectangle's x property:

     Rectangle {
         width: 100; height: 100
         color: "red"
    
         SequentialAnimation on x {
             loops: Animation.Infinite
             PropertyAnimation { to: 50 }
             PropertyAnimation { to: 0 }
         }
     }
  • In a signal handler

    For example, to fade out theObject when clicked:

     MouseArea {
         anchors.fill: theObject
         onClicked: PropertyAnimation { target: theObject; property: "opacity"; to: 0 }
     }
  • Standalone

    For example, to animate rect's width property over 500ms, from its current width to 30:

     Rectangle {
         id: theRect
         width: 100; height: 100
         color: "red"
    
         // this is a standalone animation, it's not running by default
         PropertyAnimation { id: animation; target: theRect; property: "width"; to: 30; duration: 500 }
    
         MouseArea { anchors.fill: parent; onClicked: animation.running = true }
     }

Depending on how the animation is used, the set of properties normally used will be different. For more information see the individual property documentation, as well as the QML Animation and Transitions introduction.

Note that PropertyAnimation inherits the abstract Animation element. This includes additional properties and methods for controlling the animation.

See also QML Animation and Transitions and Animation basics example.

Property Documentation

duration : int

This property holds the duration of the animation, in milliseconds.

The default value is 250.


easing.type : enumeration

easing.amplitude : real

easing.overshoot : real

easing.period : real

To specify an easing curve you need to specify at least the type. For some curves you can also specify amplitude, period and/or overshoot (more details provided after the table). The default easing curve is Easing.Linear.

 PropertyAnimation { properties: "y"; easing.type: Easing.InOutElastic; easing.amplitude: 2.0; easing.period: 1.5 }

Available types are:

Easing.LinearEasing curve for a linear (t) function: velocity is constant.
Easing.InQuadEasing curve for a quadratic (t^2) function: accelerating from zero velocity.
Easing.OutQuadEasing curve for a quadratic (t^2) function: decelerating to zero velocity.
Easing.InOutQuadEasing curve for a quadratic (t^2) function: acceleration until halfway, then deceleration.
Easing.OutInQuadEasing curve for a quadratic (t^2) function: deceleration until halfway, then acceleration.
Easing.InCubicEasing curve for a cubic (t^3) function: accelerating from zero velocity.
Easing.OutCubicEasing curve for a cubic (t^3) function: decelerating from zero velocity.
Easing.InOutCubicEasing curve for a cubic (t^3) function: acceleration until halfway, then deceleration.
Easing.OutInCubicEasing curve for a cubic (t^3) function: deceleration until halfway, then acceleration.
Easing.InQuartEasing curve for a quartic (t^4) function: accelerating from zero velocity.
Easing.OutQuartEasing curve for a quartic (t^4) function: decelerating from zero velocity.
Easing.InOutQuartEasing curve for a quartic (t^4) function: acceleration until halfway, then deceleration.
Easing.OutInQuartEasing curve for a quartic (t^4) function: deceleration until halfway, then acceleration.
Easing.InQuintEasing curve for a quintic (t^5) function: accelerating from zero velocity.
Easing.OutQuintEasing curve for a quintic (t^5) function: decelerating from zero velocity.
Easing.InOutQuintEasing curve for a quintic (t^5) function: acceleration until halfway, then deceleration.
Easing.OutInQuintEasing curve for a quintic (t^5) function: deceleration until halfway, then acceleration.
Easing.InSineEasing curve for a sinusoidal (sin(t)) function: accelerating from zero velocity.
Easing.OutSineEasing curve for a sinusoidal (sin(t)) function: decelerating from zero velocity.
Easing.InOutSineEasing curve for a sinusoidal (sin(t)) function: acceleration until halfway, then deceleration.
Easing.OutInSineEasing curve for a sinusoidal (sin(t)) function: deceleration until halfway, then acceleration.
Easing.InExpoEasing curve for an exponential (2^t) function: accelerating from zero velocity.
Easing.OutExpoEasing curve for an exponential (2^t) function: decelerating from zero velocity.
Easing.InOutExpoEasing curve for an exponential (2^t) function: acceleration until halfway, then deceleration.
Easing.OutInExpoEasing curve for an exponential (2^t) function: deceleration until halfway, then acceleration.
Easing.InCircEasing curve for a circular (sqrt(1-t^2)) function: accelerating from zero velocity.
Easing.OutCircEasing curve for a circular (sqrt(1-t^2)) function: decelerating from zero velocity.
Easing.InOutCircEasing curve for a circular (sqrt(1-t^2)) function: acceleration until halfway, then deceleration.
Easing.OutInCircEasing curve for a circular (sqrt(1-t^2)) function: deceleration until halfway, then acceleration.
Easing.InElasticEasing curve for an elastic (exponentially decaying sine wave) function: accelerating from zero velocity.
The peak amplitude can be set with the amplitude parameter, and the period of decay by the period parameter.
Easing.OutElasticEasing curve for an elastic (exponentially decaying sine wave) function: decelerating from zero velocity.
The peak amplitude can be set with the amplitude parameter, and the period of decay by the period parameter.
Easing.InOutElasticEasing curve for an elastic (exponentially decaying sine wave) function: acceleration until halfway, then deceleration.
Easing.OutInElasticEasing curve for an elastic (exponentially decaying sine wave) function: deceleration until halfway, then acceleration.
Easing.InBackEasing curve for a back (overshooting cubic function: (s+1)*t^3 - s*t^2) easing in: accelerating from zero velocity.
Easing.OutBackEasing curve for a back (overshooting cubic function: (s+1)*t^3 - s*t^2) easing out: decelerating to zero velocity.
Easing.InOutBackEasing curve for a back (overshooting cubic function: (s+1)*t^3 - s*t^2) easing in/out: acceleration until halfway, then deceleration.
Easing.OutInBackEasing curve for a back (overshooting cubic easing: (s+1)*t^3 - s*t^2) easing out/in: deceleration until halfway, then acceleration.
Easing.InBounceEasing curve for a bounce (exponentially decaying parabolic bounce) function: accelerating from zero velocity.
Easing.OutBounceEasing curve for a bounce (exponentially decaying parabolic bounce) function: decelerating from zero velocity.
Easing.InOutBounceEasing curve for a bounce (exponentially decaying parabolic bounce) function easing in/out: acceleration until halfway, then deceleration.
Easing.OutInBounceEasing curve for a bounce (exponentially decaying parabolic bounce) function easing out/in: deceleration until halfway, then acceleration.

easing.amplitude is only applicable for bounce and elastic curves (curves of type Easing.InBounce, Easing.OutBounce, Easing.InOutBounce, Easing.OutInBounce, Easing.InElastic, Easing.OutElastic, Easing.InOutElastic or Easing.OutInElastic).

easing.overshoot is only applicable if easing.type is: Easing.InBack, Easing.OutBack, Easing.InOutBack or Easing.OutInBack.

easing.period is only applicable if easing.type is: Easing.InElastic, Easing.OutElastic, Easing.InOutElastic or Easing.OutInElastic.

See the easing example for a demonstration of the different easing settings.


read-onlyexclude : list<Object>

This property holds the items not to be affected by this animation.

See also PropertyAnimation::targets.


from : real

This property holds the starting value for the animation.

If the PropertyAnimation is defined within a Transition or Behavior, this value defaults to the value defined in the starting state of the Transition, or the current value of the property at the moment the Behavior is triggered.

See also QML Animation and Transitions.


properties : string

targets : list<Object>

property : string

target : Object

These properties are used as a set to determine which properties should be animated. The singular and plural forms are functionally identical, e.g.

 NumberAnimation { target: theItem; property: "x"; to: 500 }

has the same meaning as

 NumberAnimation { targets: theItem; properties: "x"; to: 500 }

The singular forms are slightly optimized, so if you do have only a single target/property to animate you should try to use them.

The targets property allows multiple targets to be set. For example, this animates the x property of both itemA and itemB:

 NumberAnimation { targets: [itemA, itemB]; properties: "x"; to: 500 }

In many cases these properties do not need to be explicitly specified, as they can be inferred from the animation framework:

Value Source / BehaviorWhen an animation is used as a value source or in a Behavior, the default target and property name to be animated can both be inferred.
    Rectangle {
        id: theRect
        width: 100; height: 100
        color: Qt.rgba(0,0,1)
        NumberAnimation on x { to: 500; loops: Animation.Infinite } //animate theRect's x property
        Behavior on y { NumberAnimation {} } //animate theRect's y property
    }
TransitionWhen used in a transition, a property animation is assumed to match all targets but no properties. In practice, that means you need to specify at least the properties in order for the animation to do anything.
    Rectangle {
        id: theRect
        width: 100; height: 100
        color: Qt.rgba(0,0,1)
        Item { id: uselessItem }
        states: State {
            name: "state1"
            PropertyChanges { target: theRect; x: 200; y: 200; z: 4 }
            PropertyChanges { target: uselessItem; x: 10; y: 10; z: 2 }
        }
        transitions: Transition {
            //animate both theRect's and uselessItem's x and y to their final values
            NumberAnimation { properties: "x,y" }

            //animate theRect's z to its final value
            NumberAnimation { target: theRect; property: "z" }
        }
    }
StandaloneWhen an animation is used standalone, both the target and property need to be explicitly specified.
    Rectangle {
        id: theRect
        width: 100; height: 100
        color: Qt.rgba(0,0,1)
        //need to explicitly specify target and property
        NumberAnimation { id: theAnim; target: theRect; property: "x"; to: 500 }
        MouseArea {
            anchors.fill: parent
            onClicked: theAnim.start()
        }
    }

As seen in the above example, properties is specified as a comma-separated string of property names to animate.

See also exclude and QML Animation and Transitions.


to : real

This property holds the end value for the animation.

If the PropertyAnimation is defined within a Transition or Behavior, this value defaults to the value defined in the end state of the Transition, or the value of the property change that triggered the Behavior.

See also QML Animation and Transitions.


Publicité

Best Of

Actualités les plus lues

Semaine
Mois
Année
  1. Microsoft ouvre aux autres compilateurs C++ AMP, la spécification pour la conception d'applications parallèles C++ utilisant le GPU 22
  2. « Quelque chose ne va vraiment pas avec les développeurs "modernes" », un développeur à "l'ancienne" critique la multiplication des bibliothèques 38
  3. Les développeurs ignorent-ils trop les failles découvertes dans leur code ? Prenez-vous en compte les remarques des autres ? 17
  4. RIM : « 13 % des développeurs ont gagné plus de 100 000 $ sur l'AppWord », Qt et open-source au menu du BlackBerry DevCon Europe 0
  5. BlackBerry 10 : premières images du prochain OS de RIM qui devrait intégrer des widgets et des tuiles inspirées de Windows Phone 0
  6. Quelles nouveautés de C++11 Visual C++ doit-il rapidement intégrer ? Donnez-nous votre avis 10
  7. Adieu qmake, bienvenue qbs : Qt Building Suite, un outil déclaratif et extensible pour la compilation de projets Qt 17
Page suivante

Le Qt Quarterly au hasard

Logo

Le repérage des paires de parenthèses avec QSyntaxHighlighter

Qt Quarterly est la revue trimestrielle proposée par Nokia et à destination des développeurs Qt. Ces articles d'une grande qualité technique sont rédigés par des experts Qt. Lire l'article.

Communauté

Ressources

Liens utiles

Contact

  • Vous souhaitez rejoindre la rédaction ou proposer un tutoriel, une traduction, une question... ? Postez dans le forum Contribuez ou contactez-nous par MP ou par email (voir en bas de page).

Qt dans le magazine

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt 4.7
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
 
 
 
 
Partenaires

Hébergement Web