处理QML动画的屏幕分辨率更改

时间:2016-04-22 13:52:37

标签: javascript qml

我是在QML上创建一个完全可伸缩的应用程序,我需要知道的是如何处理屏幕更改,例如这个元素动画适用于1920x1080:

EventLog{
        id: eventlog
        x: 0
        y: 1000
        z: 10
        NumberAnimation{id: showeventPanel; target: eventlog; properties: "y"; to: 710; duration: 500}
    }

但我无法锚定此元素,否则动画将不会发生,因此对于其他分辨率,此元素将无法正确放置,我意识到我可以将锚点设置为锚点:未定义但是如何准确设置x和y在屏幕上移动正确的位置?

1 个答案:

答案 0 :(得分:0)

我发现的解决方案虽然不优雅,但在某种程度上起作用。我将元素锚定为如此并将其设置为虚拟矩形(centreRect),我将其锚定到正确的x和y位置:

CameraControlPanel{
        id: control_Panel
//        x: 1916
//        y: 270
        anchors {
            verticalCenter: parent.verticalCenter
            right: parent.right

        }
        anchors.rightMargin: -635

        NumberAnimation{id: showPanel; target: control_Panel; properties: "x"; to: centreRect.x; duration: 500}
        z: 10
    }

然后,当我需要启动' showPanel'动画我将锚点设置为undefined,如下所示:

        control_Panel.anchors.verticalCenter = undefined
        control_Panel.anchors.right = undefined

当我需要将元素返回到正确位置时,我重置之前的锚点。