QWebView允许弹出窗口?

时间:2013-10-27 08:12:13

标签: javascript c++ qt popupwindow qwebview

在我的项目中,我有一个QWebView加载一个打开弹出窗口的页面。但窗户不开放。我查看了createWindow函数,但我不知道如何子类化小部件。这些是我放在webView上的一些设置:

QWebSettings *settings = ui->webView_2->settings();
settings->setAttribute(QWebSettings::JavascriptEnabled, true);
settings->setAttribute(QWebSettings::JavascriptCanOpenWindows, true);

允许我的webView允许弹出窗口的最简单方法是什么?

感谢您的时间:)

1 个答案:

答案 0 :(得分:1)

您需要重新实现QWebView的createWindow方法。返回的QWebView将自动设置为所需的URL。

例如:

QWebView* WebView::createWindow(QWebPage::WebWindowType type)
{
    // WindowDialog is just a simple QDialog with a QWebView
    WindowDialog* dlg = new WindowDialog(this);
    dlg->show();

    // A method to retrieve a pointer to the QWebView of the dialog is needed
    return dlg->webView();
}

请记住,cookie不会在两个QWebView之间共享,因此您还需要实现自己的cookie管理器。一种方法是继承QNetworkCookieJar,并保持静态"全局"实例