QML:以编程方式更新绑定

时间:2018-01-18 15:43:54

标签: qt binding qml

是否有办法以编程方式更新(即重新评估)属性的当前绑定(不将其设置为其他内容并重置它)?

2 个答案:

答案 0 :(得分:1)

如果您的绑定看起来像这样:

foo: { baz; bar }

将其更改为:

baz

其中foo经常发生变化,导致baz在需要时重新评估,这意味着 <textarea id="comment"></textarea> <button class="btn btn-success" id="addComment">comment</button> 会相关。例如,已经完成了类似的黑客攻击here

我建议不要依赖评估顺序来正确解决问题。

答案 1 :(得分:1)

你可以做(​​如果可能,应该避免破解):

value: foo, bindedValue

value: (foo && !foo) || bindedValue
调用以下函数value时,

reevaluateValue()将被完全重新评估:

property bool foo: false

function reevaluateValue() {
    foo = !foo
}