2016-07-28 11 views
1

私は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 
} 

好ましいものである同じQtObjectに結合他に結合使って任意の欠点はありますか?私が求めている理由は、Qtのドキュメントでは評価の順序が不定であるからです。

答えて

2

注文が完全に定義されていないことは間違いありません。バインディングは、依存関係によって定義された順序で評価されます。いずれのdependant-dependencyペアについても、dependantの前にdependency側が評価されていることが保証されます。したがって、isSomethingプロパティはすべて、依存関係haveMyObjectが評価/更新された後に評価/更新されます。

+0

私はそれが非常に有用な情報です、ありがとうございます。この情報を持っているリンクも提供できますか? – Silex

+0

@Silexちょうど代替案を想像し、次に何かがうまくいくかどうかを考えてみましょう。 –

+0

意味があります、ありがとうございます! – Silex

関連する問題