在Qt4.6 w/Webkit中:如何处理弹出窗口请求(WebView::createWindow)?

在Qt4.6 w/Webkit中:如何处理弹出窗口请求(WebView::createWindow)?,qt4,popup,webkit,Qt4,Popup,Webkit,我是QT新手,一直在尝试创建一个测试浏览器。我现在要做的是处理基于js的弹出式请求。在阅读了QT文档之后,我了解到我需要重新实现QWebView::createWindow方法来实现这一点 现在我已经重新实现了这个方法,但是当我尝试单击触发弹出窗口的链接时,它似乎没有被调用 有人能帮我吗?我是否需要同时对WebView和WebPage类进行子类化?如果是,我该怎么做?我对QT很陌生,我做了大量的搜索,但什么也没找到 提前感谢大家的提示和建议 您是否记得设置以下选项 view->settin

我是QT新手,一直在尝试创建一个测试浏览器。我现在要做的是处理基于js的弹出式请求。在阅读了QT文档之后,我了解到我需要重新实现QWebView::createWindow方法来实现这一点

现在我已经重新实现了这个方法,但是当我尝试单击触发弹出窗口的链接时,它似乎没有被调用

有人能帮我吗?我是否需要同时对WebView和WebPage类进行子类化?如果是,我该怎么做?我对QT很陌生,我做了大量的搜索,但什么也没找到


提前感谢大家的提示和建议

您是否记得设置以下选项

view->settings()->setAttribute(QWebSettings::JavascriptEnabled, true);
view->settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, true);
不要忘记调用父类createWindow()方法。文件中有一条说明:

注意:如果 关联页面将重新实现, 不调用此方法,除非 在 重新实施


别提我的第二个问题(在评论区),以下是我为捕获新窗口请求所做的工作(多亏了邓肯的提示!):

这在自定义WebView类的初始化过程中使用

希望这对其他人有用。
谢谢

@duncan,非常感谢你的帮助!我非常确定JavaScript已经启用,因为所有其他js调用都工作得非常好。我试图使用setAttribute调用来启用JavascriptCanOpenWindows,但是我遇到了以下错误消息:没有匹配的函数用于调用QWidget::setAttribute。。。我使用的代码是:myWebView->page()->view()->setAttribute(QWebSettings::JavascriptCanOpenWindows,true);这是不对的吗?我相信这是一个非常愚蠢的问题,再次感谢你的洞察力!
page()->settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, true);