QML属性绑定取决于同一组件中的其他绑定
问题描述:
假设我有一个QtObject
,它有一些属性。有没有用在其他在同一QtObject
结合一个有约束力的任何缺点:QML属性绑定取决于同一组件中的其他绑定
QtObject {
// This is set by the caller
property var myObject
readonly property bool haveMyObject: myObject ? true : false
readonly property bool isSomething1: haveMyObject ? myObject.isSomething1 : false
readonly property bool isSomething2: haveMyObject ? myObject.isSomething2 : false
readonly property bool isSomething3: haveMyObject ? myObject.isSomething3 : false
readonly property bool isSomething4: haveMyObject ? myObject.isSomething4 : false
readonly property bool isSomething5: haveMyObject ? myObject.isSomething5 : false
}
,而不是这样的:
QtObject {
// This is set by the caller
property var myObject
readonly property bool haveMyObject: myObject ? true : false
readonly property bool isSomething1: myObject ? myObject.isSomething1 : false
readonly property bool isSomething2: myObject ? myObject.isSomething2 : false
readonly property bool isSomething3: myObject ? myObject.isSomething3 : false
readonly property bool isSomething4: myObject ? myObject.isSomething4 : false
readonly property bool isSomething5: myObject ? myObject.isSomething5 : false
}
哪一个最好?我问的原因是因为Qt文档评估的顺序是不确定的。
答
订单完全未定义是不正确的。绑定以依赖关系定义的顺序进行评估。对于任何dependant-dependency
对,保证在dependant
之前评估dependency
方。因此,每isSomething
财产被评估/更新后它依赖haveMyObject
已被评估/更新。
我明白了,这是一个非常有用的信息,谢谢。你也可以提供一个链接,也有这个信息? – Silex
@Silex试想一下另一种方法,然后再考虑是否有其他方法可行。 –
有道理,谢谢! – Silex