2013-10-27 84 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,並保留一個靜態的「全局」實例。