绑定调用顺序

时间:2015-06-08 00:05:21

标签: qt qml qtquick2

假设我们有以下QML代码:

import QtQuick 2.4
import QtQuick.Window 2.0

Window {
    id: win
    width: 800
    height: 600


    Rectangle {
        id: rect
        width: 100
        height: 100
        anchors.centerIn: parent
        color: "orange"
        property bool test: false
        MouseArea {
            anchors.fill: parent
            onClicked: {
                rect.test = true;
            }
        }
    }

    Item {
        property bool test: rect.test
        onTestChanged: {
            rect.color = "green"
        }
    }
    Item {
        property bool test: rect.test
        onTestChanged: {
            rect.color = "yellow"
        }
    }
}

在上面的示例中,项目test的属性rect有2个绑定。在这种情况下,哪个是绑定的评估顺序?最重要的是,我可以管理它并设置特定的订单吗?

1 个答案:

答案 0 :(得分:3)

订单未定义。我可以在一个阶段发誓有关于此的文档,但现在我能找到的只是小参考文献:

Positioning with Anchors

  

因为未定义绑定的评估顺序[...]

JavaScript Expressions in QML Documents

  

如果在启动时要执行多个onCompleted()处理程序,它们将以未定义的顺序依次运行。