QWebView,如何判断此链接是不是为新窗口?
Posted
技术标签:
【中文标题】QWebView,如何判断此链接是不是为新窗口?【英文标题】:QWebView,How to determine whether this link is a new window?QWebView,如何判断此链接是否为新窗口? 【发布时间】:2012-11-06 01:54:23 【问题描述】:代码
News::News(QWidget *parent) :
QDialog(parent),
ui(new Ui::News)
ui->setupUi(this);
ui->webView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
connect(ui->webView,SIGNAL(linkClicked(QUrl)),this,SLOT(openUrl(QUrl)));
void News::openUrl(QUrl url)
if(the new window)
QDesktopServices::openUrl(url);
else
ui->webView->load(url);
如何判断不是新窗口链接函数openUrl? 我将如何编写这段代码、? 谢谢!!!
【问题讨论】:
【参考方案1】:您需要从 QWebView 继承您自己的类并重新实现 createWindow() 方法。 http://doc.qt.digia.com/qt/qwebview.html#createWindow
【讨论】:
新窗口时,如何获取URL? 不太清楚“何时出现新窗口”是什么意思。 QWebView 会将正在打开的 URL 设置为您返回指针的 QWebView。如果您需要知道 URL,您可以捕获在页面加载期间发出的 QWebPage 信号之一并查询 URL。 我需要做一个浏览器,点击url现在所有负载处理。如何更好地处理? 或 我刚刚告诉过你。重新实现 createWindow()。在重新实现的方法中构造一个新的 QWebView 实例。为它调用 show()。返回指针。 QWebView 会自动设置你返回的 QWebView 的 URL。 谢谢,我正在尝试 WebPage::acceptNavigationRequest 和 WebPage::createWindow。以上是关于QWebView,如何判断此链接是不是为新窗口?的主要内容,如果未能解决你的问题,请参考以下文章