2014-10-10 40 views
0

为MyObjectQML在产品改变的信号

Item { 
    property int current: 0 
} 

可以这样配置来发射信号,使得以下工作?

Item { 
    property variant myObj: MyObject {} 
    onMyObjChanged: doThis() 
    ... 
} 
+1

而不每个属性的更改信号手动转发到您的自定义'MyObj'信号。我必须质疑_为什么你会这么做? – cmannett85 2014-10-10 16:35:02

+0

我在一个遗留项目,并没有使用过Qt/QML。 改变模式始终在使用。在不了解这些工具的最佳实践的情况下,我正在寻找方法通知基于项目的属性的所有者其内部状态已发生变化。在这种情况下,只有'current'与MyObject的“状态”相关。 – jneander 2014-10-10 17:13:00

回答

1

cmannet85已回答您的问题:这是不可能的。也许你可以发布更多的代码,所以我们可以建议其他方法。

就使用您提供的信息的解决方案而言,您应该公开客户端代码应连接到的信号,以便知道对象何时发生更改。既然你说current属性是最重要的事情,它already has a change signal,你可以使用Connections

Connections { 
    target: myObj 
    onCurrentChanged: doThis() 
} 

或连接到手动信​​号:不

Component.onCompleted: { 
    myObj.onCurrentChanged.connect(doThis); 
} 

function doThis() { 
    // ... 
}