将动态对象(使用QThread)图像从C ++更新为QML

时间:2016-08-17 16:38:47

标签: qml qthread

我的作业有问题。

在实时接收数据后,我可以使用ImageProvider在C ++到qml的背景上创建并显示 1 移动对象图像(这很简单并完成)。但是,我的作业要求:"点击按钮动态生成一些移动独立的对象(示例3对象,但不应该修复)。所以我决定为每个项目创建3个线程,每个线程将接收数据并分别更新到图像。但是,我的问题是:

在qml文件中,我必须声明一个代码段来更新图像,如:

Image  {
   id: id_image
   source: "image/MyImageProvider/id_image

   cache: false
   function reload(){
      source = "";
      source = "image/MyImageProvider/id_image"
}

Connections {
   target: MyObject
   onSignal_reload:{
     id_image.reload()
   }
}

当我无法知道高级对象的数量时,我怎么能做类似的事情?有人有想法吗?感谢。

1 个答案:

答案 0 :(得分:0)

您可以将Image项目放入Repeater。 然后继承QAbstractItemModel并将其用作Repeater的模型。

看看这个例子 http://doc.qt.io/qt-5/qtquick-modelviewsdata-cppmodels.html