在我的项目中,我有一个QWebView加载一个打开弹出窗口的页面。但窗户不开放。我查看了createWindow函数,但我不知道如何子类化小部件。这些是我放在webView上的一些设置:
QWebSettings *settings = ui->webView_2->settings();
settings->setAttribute(QWebSettings::JavascriptEnabled, true);
settings->setAttribute(QWebSettings::JavascriptCanOpenWindows, true);
允许我的webView允许弹出窗口的最简单方法是什么?
感谢您的时间:)
答案 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,并保持静态"全局"实例