-1
我正在使用QtWebEngine。我有一個非常沉重的頁面。當頁面加載時,我顯示另一個QWindow(一個啓動窗口)。如何強制更新隱藏窗口?
我訂閱了QQuickWebEngineView的loadingChanged信號,我通過它顯示了帶有webview的窗口。
問題是QWE加載一個內容,但不會在QSG中繪製它,直到窗口顯示。我如何看待,QWE捕獲OnSwapCompositorFrame,調用QQuickItem :: update(),這一切都沒有發生。在顯示窗口之後立即調用updatePaintNode。
如果我使用QPainter(-disable-delegated-renderer),而不是QSG,那麼一切正常。我做了一些黑客,但我認爲會有副作用。
哈克(在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);
}
}
,可以嗎?如何強制更新隱藏窗口?