假设我们有以下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个绑定。在这种情况下,哪个是绑定的评估顺序?最重要的是,我可以管理它并设置特定的订单吗?
答案 0 :(得分:3)
订单未定义。我可以在一个阶段发誓有关于此的文档,但现在我能找到的只是小参考文献:
因为未定义绑定的评估顺序[...]
JavaScript Expressions in QML Documents:
如果在启动时要执行多个onCompleted()处理程序,它们将以未定义的顺序依次运行。