Qt: Обновления могут быть запланированы только из потока GUI или из QQuickItem::updatePaintNode

Как можно позвонить update() на QQuickItem из рабочего потока, не вызывая следующее предупреждение?

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

Я хочу обеспечить QQuickItem::updatePaintNode() выполнить.

Я пробовал решение зацепить QObject::connect из рабочего потока в слот, который вызывает MyQQuickItem->update(), Все работает хорошо, хотя. QQuickItem::updatePaintNode() вызывается после того, как сигнал испустить QQuickItem обновляется так, как я хочу. Но я получаю это предупреждение при каждом планируемом вызове обновления, который я понимаю, поскольку вы не можете обновить пользовательский интерфейс из рабочего потока. Но как это сделать без предупреждения в Qt?

НО, как я могу избавиться от предупреждения, которое я получаю при каждом вызове обновления?

Примечание: я должен был сделать QObject::connect с Qt::DirectConnection с Qt::QueuedConnection не сработало для вызова update через сигнал.

Проверено через это обсуждение здесь. Обсуждение в этой ссылке заканчивается жалобой на то же предупреждение, которое я получаю здесь. Мой вопрос: что я должен исправить, чтобы избежать этого предупреждения?

0 ответов

Другие вопросы по тегам