【问题标题】: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? 我将如何编写这段代码、? 谢谢!!!

【问题讨论】:

    标签: c++ qt qwebview qwebpage qtnetwork


    【解决方案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。
    猜你喜欢
    • 2010-10-05
    • 1970-01-01
    • 2011-04-28
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-02
    • 2012-06-16
    相关资源
    最近更新 更多