import QtQuick 2.9 import QtQuick.Window 2.2 Window { width: 640 height: 480 visible: true property bool leftMode: true Item { anchors.fill: parent Rectangle { id: rect x: 10 y: 10 width: 100 height: 100 color: "blue" } Timer { id: timer interval: 2000 running: true repeat: true onTriggered: leftMode = !leftMode } onStateChanged: console.log("state:", state) states: [ State { name: "left" when: leftMode PropertyChanges { target: rect x: 10 } }, State { name: "right" when: !leftMode PropertyChanges { target: rect x: 500 } } ] transitions: [ Transition { from: "left" to: "right" reversible: true NumberAnimation { target: rect properties: "x" duration: 1000 } } ] } }