[Interest] Updating NumberAnimation from/to at runtime

Mark Tucker mark.tucker at airborne.aero
Fri Jul 14 15:54:07 CEST 2017


From my experience, once started, you cannot dynamically change the parameters (such as from, to, duration) of an animation in such a way, without restarting the animation. Doing so simply has no effect on the already running animation.

In other words, the values are taken as an assignment at the point at which it's started and will not change until the animation is restarted.

-Mark

From: Interest [mailto:interest-bounces+mark.tucker=airborne.aero at qt-project.org] On Behalf Of Kristoffersen, Even (NO14)
Sent: 14 July 2017 14:00
To: interest at qt-project.org
Subject: Re: [Interest] Updating NumberAnimation from/to at runtime

You can try to force binding with Qt.binding().

-Even

From: Interest [mailto:interest-bounces+even.kristoffersen=honeywell.com at qt-project.org] On Behalf Of Shantanu Tushar
Sent: 14. juli 2017 11:27
To: interest at qt-project.org<mailto:interest at qt-project.org>
Subject: [Interest] Updating NumberAnimation from/to at runtime

Hi,
Consider the following code which draws two rectangles - a red rectangle which contains another blue rectangle.

Rectangle {
        id: r1
        anchors.centerIn: parent
        width: 300; height: 100
        color: "red"

        Rectangle {
            id: r2
            width: 100; height: 100
            color: "blue"

            NumberAnimation on x {
                loops: Animation.Infinite
                from: 0; to: r1.width-r2.width
                duration: 1000

                onToChanged: console.log(to)
            }
        }

        NumberAnimation on width {
            loops: Animation.Infinite
            from: 300; to: 100
            duration: 10000
        }
    }
The blue rectangle is supposed to keep moving inside the red rectangle by means of a NumberAnimation. However, the width of the red rectangle changes according to another animation.
I thought this will work fine and the blue rectangle will be confined to the red rectangle because of the following binding-

to: r1.width-r2.width
However, thats not what happens. The blue rectangle overflows the red rectangle, as if the binding never got updated. But, I can see that the `console.log(to)` does prove the binding is working.

(Screenshot at http://i.imgur.com/yDTYbv9.png<https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fi.imgur.com%2FyDTYbv9.png&data=02%7C01%7Ceven.kristoffersen%40honeywell.com%7C5b50a750b34e473ffd8708d4ca9a91e0%7C96ece5269c7d48b08daf8b93c90a5d18%7C0%7C0%7C636356212616706749&sdata=D17jHatSL1gf3XFPYQpAebB2e1H7T7nmzhLvi%2BPcB5g%3D&reserved=0> )
Is this a limitation of NumberAnimation? Or am I using it wrong?

--
Shantanu Tushar    (UTC +0530)
shantanu.io<https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fshantanu.io&data=02%7C01%7Ceven.kristoffersen%40honeywell.com%7C5b50a750b34e473ffd8708d4ca9a91e0%7C96ece5269c7d48b08daf8b93c90a5d18%7C0%7C0%7C636356212616706749&sdata=E80rwaltPVsx1m%2FToEC8aIY1%2F9fwpeFCfxrLlThOxTs%3D&reserved=0>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20170714/47ac5871/attachment.html>


More information about the Interest mailing list