2014-10-10 50 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() { 
    // ... 
}