2014-07-14 69 views
-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); 
    } 
} 

,可以嗎?如何強制更新隱藏窗口?

回答