2013-10-27 57 views
1

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

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

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

感谢您的时间:)

回答

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(); 
} 

请记住,cookies不两个QWebViews之间共享,所以你还需要实现自己的cookie管理器。一种方法是继承QNetworkCookieJar,并保留一个静态的“全局”实例。