我经常从服务器接收数据。该数据主要由数字组成。它们中的每一个都对应于需要更新的QML对象。
Q_PROPERTY
和signals
之间为了更新QML
文件中的C++
个对象,最佳做法是什么?
答案 0 :(得分:3)
非常好的方法是使用从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。