在我的项目,我有一个加载打开一个弹出窗口的页面的QWebView。 但窗口不会打开。 我看着CreateWindow函数,但我不知道如何继承一个小部件。 这些都是一些设置我放到web视图:
QWebSettings *settings = ui->webView_2->settings();
settings->setAttribute(QWebSettings::JavascriptEnabled, true);
settings->setAttribute(QWebSettings::JavascriptCanOpenWindows, true);
是什么让我的web视图允许弹出窗口的最简单的方法?
谢谢你的时间 :)
你需要重新实现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();
}
请记住,cookies不两个QWebViews之间共享,所以你还需要实现自己的cookie管理器。 做到这一点的一种方法是继承QNetworkCookieJar,并保持一个静态的“全球性”的实例。