Как заставить обновить скрытое окно?

Я работаю с QtWebEngine. У меня очень тяжелая страница. Когда страница загружена, я показываю другое QWindow (всплывающее окно).

Я подписываюсь на сигнал loadChanged QQuickWebEngineView, которым я показываю окно с веб-просмотром.

Проблема в том, что QWE загружает контент, но не рисует его в QSG, пока не появится окно. Как я вижу, QWE ловит OnSwapCompositorFrame, вызывает QQuickItem :: update () и все, больше ничего не происходит. UpdatePaintNode вызывается сразу после отображения окна.

Если я использую QPainter (-disable-Delegated-Renderer) вместо QSG, все работает хорошо. Я сделал несколько хаков, но я думаю, что будут побочные эффекты.

Hack (в src / webengine / render_widget_host_view_qt_delegate_quick.cpp)

void RenderWidgetHostViewQtDelegateQuick::update(const QRect&)
{
if (window()->isVisible()) {
if (hiddenNode) {
delete hiddenNode;
hiddenNode = NULL;
}
QQuickItem::update();
} else {
hiddenNode = updatePaintNode(hiddenNode, NULL);
}
}

Это нормально? Как заставить обновить скрытое окно правильно?

-1

Решение

Создайте АКТИВНОГО художника и используйте QWidget :: оказывать

0

Другие решения


По вопросам рекламы [email protected]