Qt:只能从GUI线程或QQuickItem :: updatePaintNode安排更新

时间:2017-08-18 07:42:02

标签: c++ multithreading qt signals-slots qquickitem

如何在不导致以下警告的情况下从工作线程调用update() QQuickItem

Updates can only be scheduled from GUI thread or from QQuickItem::updatePaintNode()

我想强制执行QQuickItem::updatePaintNode()

我尝试了将QObject::connect从工作线程挂钩到调用MyQQuickItem->update()的插槽的解决方案。 一切正常但。信号发出后调用QQuickItem::updatePaintNode()& QQuickItem以我想要的方式更新。但是我在每次更新调用时都会收到此警告,因为您无法从工作线程更新UI,因此我了解了哪些我理解。但是在没有Qt警告的情况下,这样做的方法是什么?

但是,我如何摆脱每次更新通话时发出的警告?

注意:我必须使用QObject::connect生成Qt::DirectConnection,因为Qt::QueuedConnection无法通过信号调用更新。

已检查this discussion here。在这个链接中的讨论结束时抱怨我来到这里的同样的警告。我的问题是我应该纠正什么来避免这种警告?

0 个答案:

没有答案