Qt 为几个属性之一的任何更改触发脚本的最佳方法

Qt 为几个属性之一的任何更改触发脚本的最佳方法,qt,qml,Qt,Qml,绑定属性时,如果绑定到的某个属性发生了更改,则将重新计算该属性。 例如: 当条件改变时,重新评估测试 现在。。。我想要类似的东西,但用于触发javascript函数: 当几种条件之一prCond1 | | prCond2 | |…| |prCondN已更改,我希望调用一个函数 如果只有一个条件我可以写: onPrCond1Changed: { functionCall() } 但是当你考虑一个以上的条件时,什么是最好的方法呢?有标准的方法吗 基本上我需要这样的东西: functionC

绑定属性时,如果绑定到的某个属性发生了更改,则将重新计算该属性。 例如:

当条件改变时,重新评估测试

现在。。。我想要类似的东西,但用于触发javascript函数: 当几种条件之一
prCond1 | | prCond2 | |…| |prCondN
已更改,我希望调用一个函数

如果只有一个条件我可以写:

onPrCond1Changed: {
    functionCall()
}
但是当你考虑一个以上的条件时,什么是最好的方法呢?有标准的方法吗

基本上我需要这样的东西:

functionCall() if one of these changes: prCond1 || prCond2 || ... || prCondN

其中prCond可能是不同类型的。

一种可能的解决方案是将变量分组到变量列表中,并在列表中查找更改

property var myObject = {'prop': 'value'}
property variant conditions = [prCond1, prCond2, myObj]

onConditionsChanged: {
   console.log("one of the conditions have changed");
}

请注意,除非对象本身发生更改(例如,myObj=newobject({'prop':'newValue'})),否则myObj属性的更改不会触发changeEvent。

是prCond1 prCondN预定义的属性/变量,还是内联求值语句?如果唯一重要的是属性测试是否被更改,那么OnTestCudid()将是足够的。PRCOND1-PRCONDN是不同类型的预定义属性(可以是字符串、int和BOOLS),这些属性与C++的QQualy属性绑定。test property示例只是Qt的一个功能示例,当任何属性从一组其他属性更改时,Qt可以更改属性的值。我问是否有类似的东西(当您有一组属性时)用于触发函数。我想这是最简单的方法,但我认为可能有一种更优雅的方法。
property var myObject = {'prop': 'value'}
property variant conditions = [prCond1, prCond2, myObj]

onConditionsChanged: {
   console.log("one of the conditions have changed");
}