如何使用QTWebEngine为子窗口设置用户代理?

时间:2017-01-05 15:51:50

标签: qt c++11 qtwebengine qt5.8

我用QtWebEngine创建了自己的Webbrowser。现在我想用this->page()->profile()->setHttpUserAgent(USER_AGENT);设置用户代理。这适用于主视图。

如果我在myWebEngineView的方法createWindow内创建新的myWebEngineView,则用户代理将成为QtWebEngine的默认用户代理。

myWebEngineViewQWebEngineView的子类。

如何为所有视图设置用户代理?

1 个答案:

答案 0 :(得分:0)

您可以再次在新创建的窗口中设置用户代理:

QWebEngineView* WebEngineView::createWindow( QWebEnginePage::WebWindowType type ) {
    QWebEngineView* view = createView(); // your function to create a new tab or sth like this
    view->page()->profile()->setHttpUserAgent( "" );
    view->page()->profile()->setHttpUserAgent( "Mozilla/5.0( YOUR USER AGENT )" );
    return view;
}

用户代理需要设置两次,否则不会转移到页面上,另请参见ProfileAdapter::setHttpUserAgent(const QString &userAgent)