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