2016-02-04 35 views
0

我很頻繁地從服務器接收數據。這些數據主要由數字組成。它們中的每一個對應於需要更新的QML對象。使用信號或Q_PROPERTY更新QML對象

Q_PROPERTYsignals之間爲了更新C++文件中的QML對象,最佳做法是什麼?

+0

從C++文件更新QML對象? – falkb

+0

是的。參見[Qt綁定文檔](http://doc.qt.io/qt-4.8/qtbinding.html) –

回答

1

很好的方法是使用從QML綁定到C++對象。

F.ex.你有數據類應該顯示給用戶作爲一些qml對象。數據和相應的屬性

你有C++類:

class MyData 
{ 
    Q_OBJECT 
    Q_PROPERTY(qreal number READ number NOTIFY numberChanged) 
    .... 
    //here you implement setter function that emits numberChanged() signal 

}; 

你暴露你的數據通過一些輔助類或直接QML:

view->rootContext()->setContextProperty("myData", myDataObject); 

比你使用綁定在你的QML反對:

Text 
{ 
    text: myData.number 
} 

現在你可以改變MyData類的對象中的數據和你的qml自動更新。