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,如何判断此链接是不是为新窗口?的主要内容,如果未能解决你的问题,请参考以下文章

小程序 判断是不是为新用户 登陆授权 封装request请求

QWebView 获取内容类型

如何在 PyQt 中对 qwebview 应用掩码?

PyQt4中QWebView的多线程

如何在新选项卡(而不是新窗口)中打开链接? [复制]

如何让 QtWebKitWidgets.QWebView 与 qt 设计器一起工作