QML过渡立即改变,而不是根据'持续时间'

时间:2017-11-10 14:22:09

标签: qt qml qtquick2 transitions

我有以下QML文件。当单击 root 项时(简化设置),我不想从右侧滑入矩形 myRect 。实际发生的情况是,单击 root 项时会立即显示 myRect

我在转换时检查了运行属性,这似乎没问题。当我点击 root 项目,然后在2秒后点击 false 时,它会记录 true

有谁知道为什么 x 属性不会逐渐改变?

import QtQuick 2.7

Item{
    id: root

    MouseArea{
        anchors.fill: parent
        onClicked: {
            myRect.state = "visible"
        }
    }          

    Rectangle{
        id: myRect

        width: root.width
        height: root.height

        state: "hidden"

        color: "yellow"

        states: [
            State {
                name: "hidden"
                PropertyChanges{
                    target: myRect
                    x: myRect.width
                }
            },
            State {
                name: "visible"
                PropertyChanges{
                    target: myRect
                    x: 0
                }
            }                
        ]
        transitions: [
            Transition {
                NumberAnimation{
                    duration: 2000
                }
                onRunningChanged: {
                    console.log("Running:", running)
                }
            }
        ]
    }
}

1 个答案:

答案 0 :(得分:2)

您必须在您的情况下指明该属性" x"

NumberAnimation{
    duration: 2000
    properties: "x"
}