Updating multiple QImages on QML::Image view displays only the last one
-
I have Image qml component to display QImages. Following is the
QMLcode for it.Code:
Item { Image { id: my_qimage_viewer anchors.fill: parent } Connections { target: qimage_selector_cpp_backend onQImageDisplayRequested: { my_qimage_viewer.source = next_qimage_source console.log("New qimage sent for display is : " + my_qimage_viewer.source) } } }What is working:
I have a C++ class using QQuickImageProvider to supplyQImages with different IDs every time.This technique basically works if I update single
QImages on selection of some button by user. I can generate aQImageon the fly & update it onmy_qimage_viewer. Also able to display multiple different images on demand from user. This proves that my technique usingQQuickImageProvideris basically working.What is not working
But, here is where the problem arises. when I send manyQImages subsequently, like 50-60 of them all in a for loop, then it does not display all but only displays the last one sent for update !My objective here is to try play 50-60
QImages with some millis gap in between to make them appear like a video/animation. Is it that the Image component is not made for such kind of use? Or is it that I am doing some mistake?Question:
May be I should wait for eachQImageto be display complete before updating the next? How can I do that if that is whats missing?Is there an example of an app using Image to display multiple
QImages making it appear like a video or animation? -
Hi,
You for loop will block the event loop so it's not really a good idea. What about just using a QTimer with the adequate speed to trigger the update ?
-
Hi,
You for loop will block the event loop so it's not really a good idea. What about just using a QTimer with the adequate speed to trigger the update ?
@SGaist thanks for your attention on this.
May be I should use an
threadto run the for loop ? Then update theQImagebased on some queued signal or slot ? Is there a standard example of updating multipleQImages on a QML::Image component ? -
Something is not clear: do you have multiple
Imageobject using the same provider that you want to update or do you have oneImagecomponent that you want too use as some sort of video widget ? -
Something is not clear: do you have multiple
Imageobject using the same provider that you want to update or do you have oneImagecomponent that you want too use as some sort of video widget ?@SGaist I have only one
Imagecomponent which I want to update withQImages consecutively. Yes basically use it like a VideoWidget. But, I figured out the reason of the issue. the for loop was blocking the main event loop as you said :-) thanks