1

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

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

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

谢谢你的时间 :)

4

1 回答 1

2

您需要重新实现 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,并保留一个静态的“全局”实例。

于 2014-05-30T16:36:20.247 回答