Les animations
Qt Quick permet d'animer les propriétés. L'animation des propriétés permet aux valeurs des propriétés de passer par des valeurs intermédiaires au lieu de passer immédiatement à la valeur cible. Pour animer la position d'un élément, vous pouvez animer les propriétés qui contrôlent la position de l'élément, x et y par exemple, de sorte que la position de l'élément change à chaque image pour atteindre la position cible.
Des interfaces utilisateur fluides
QML a été conçu pour faciliter la création d'interfaces utilisateur fluides. Il s'agit d'interfaces utilisateur dont les composants s'animent au lieu d'apparaître, de disparaître ou de sauter brusquement. Qt Quick propose deux méthodes simples pour faire en sorte que les composants de l'interface utilisateur se déplacent avec animation au lieu d'apparaître instantanément à leur nouvel emplacement.
États et transitions
Qt Quick vous permet de déclarer divers états de l'interface utilisateur dans les objets State. Ces états sont constitués de changements de propriétés à partir d'un état de base et peuvent constituer un moyen utile d'organiser votre logique d'interface utilisateur. Les transitions sont des objets que vous pouvez associer à un élément pour définir la façon dont ses propriétés s'animeront lorsqu'elles changeront en raison d'un changement d'état.
Les états et les transitions d'un élément peuvent être déclarés à l'aide des propriétés Item::states et Item::transitions. Les états sont déclarés à l'intérieur de la propriété states list d'un élément, généralement l'élément racine du composant. Les transitions définies sur le même élément sont utilisées pour animer les changements d'état. Voici un exemple.
Item { id: container width: 320 height: 120 Rectangle { id: rect color: "red" width: 120 height: 120 TapHandler { onTapped: container.state === '' ? container.state = 'other' : container.state = '' } } states: [ // This adds a second state to the container where the rectangle is farther to the right State { name: "other" PropertyChanges { target: rect x: 200 } } ] transitions: [ // This adds a transition that defaults to applying to all state changes Transition { // This applies a default NumberAnimation to any changes a state change makes to x or y properties NumberAnimation { properties: "x,y" } } ] }
Animation des changements de propriété.
Les comportements peuvent être utilisés pour spécifier une animation pour une propriété à utiliser lorsqu'elle change. Cette animation est ensuite appliquée à tous les changements, quelle que soit leur source. L'exemple suivant illustre l'animation d'un bouton se déplaçant à l'écran à l'aide de comportements.
Item { width: 320 height: 120 Rectangle { color: "green" width: 120 height: 120 // This is the behavior, and it applies a NumberAnimation to any attempt to set the x property Behavior on x { NumberAnimation { //This specifies how long the animation takes duration: 600 //This selects an easing curve to interpolate with, the default is Easing.Linear easing.type: Easing.OutBounce } } TapHandler { onTapped: parent.x == 0 ? parent.x = 200 : parent.x = 0 } } }
Autres animations
Toutes les animations ne doivent pas nécessairement être liées à une propriété ou à un état spécifique. Vous pouvez également créer des animations de manière plus générale et spécifier des éléments et des propriétés cibles dans l'animation. Voici quelques exemples de différentes manières de procéder :
Item { width: 320 height: 120 Rectangle { color: "blue" width: 120 height: 120 // By setting this SequentialAnimation on x, it and animations within it will automatically animate // the x property of this element SequentialAnimation on x { id: xAnim // Animations on properties start running by default running: false loops: Animation.Infinite // The animation is set to loop indefinitely NumberAnimation { from: 0; to: 200; duration: 500; easing.type: Easing.InOutQuad } NumberAnimation { from: 200; to: 0; duration: 500; easing.type: Easing.InOutQuad } PauseAnimation { duration: 250 } // This puts a bit of time between the loop } TapHandler { // The animation starts running when you click within the rectangle onTapped: xAnim.running = true } } } Item { width: 320 height: 120 Rectangle { id: rectangle color: "yellow" width: 120 height: 120 TapHandler { // The animation starts running when you click within the rectangle onTapped: anim.running = true; } } // This animation specifically targets the Rectangle's properties to animate SequentialAnimation { id: anim // Animations on their own are not running by default // The default number of loops is one, restart the animation to see it again NumberAnimation { target: rectangle; property: "x"; from: 0; to: 200; duration: 500 } NumberAnimation { target: rectangle; property: "x"; from: 200; to: 0; duration: 500 } } }

Pour plus d'informations sur les animations, consultez la page Concepts importants de Qt Quick - États, transitions et animations.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.