如何处理“在新窗口中打开链接”以打开新的QWebPage
而不是新窗口,将先前的QWebPage保存在堆栈中并使用QWebView::setPage()
显示新的? / p>
我是Qt(甚至是C ++)的新手,关于如何修复堆栈的建议也很受欢迎。
答案 0 :(得分:5)
强制打开同一QWebView
中的链接,如果它们是“链接”
您可以为QWebPage
设置linkDelegationPolicy到QWebPage::DelegateAllLinks
然后捕获linkClicked
的{{1}}信号,并在信号参数中创建一个QWebPage
的新QWebPage
至于堆栈,您也可以手动执行此操作。有一个url
/ QList
,当您从上述信号中获得新的QVector
时,请将当前QWebPage
添加到堆栈,然后创建新的QWebPage
并将其设置为QWebPage
您还可以尝试在QWebView::setPage()
中对triggerAction进行子类化,然后检查所请求的操作,以及QWebPage
是否调用基类函数并将操作改为QWebPage::OpenLinkInNewWindow
。
不确定这是否适用于所有情况,但值得一试,如果它适合你。