• 6774阅读
  • 2回复

江湖救急, 为什么我为QWebView写的linkClicked事件处理函数没有调用 [复制链接]

上一主题 下一主题
离线nikshuang2
 
只看楼主 倒序阅读 楼主  发表于: 2009-08-10
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
      RT, 我写了个函数来处理QWebView的linkClicked信号,也就是在QWebView中点击连接后发送QWebView发送出linkClicked信号,代码片段:
  
xxx.h:
      .......
      private slots:
            void loadWidget(const QUrl &url);

      private:
            QWebView *webView;
      ......

xxx.cpp:
      webView = new webView();
      connect(webView, SIGNAL(linkClicked(const QUrl &url)), this, SLOT(loadWidget(const QUrl &url)));
      ......

     代码编译和运行过程都没有错误提示,但程序的运行结果是,虽然的确是重新load新的连接,但却没有调用我编写的函数loadWidget,因为我在这个函数对页面进行了一些处理。
当我把loadWidget中的代码注释掉重新编译之后证实了没有运行loadWidget的猜测,在loadWidget注释掉的情况下,它依旧能load链接。

     请各位大侠帮忙看看这个问题,帮忙解决下,用其他方法也行,谢谢了。
离线nikshuang2
只看该作者 1楼 发表于: 2009-08-10
顶起来阿
离线iiiyyyhhhsss

只看该作者 2楼 发表于: 2009-09-29
要先用以下语句设置一下才能生效
webView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);


manul里是这样说明的:
void QWebView::linkClicked ( const QUrl & url )   [signal]

This signal is emitted whenever the user clicks on a link and the page's linkDelegationPolicy property is set to delegate the link handling for the specified url.

See also QWebPage::linkDelegationPolicy().
快速回复
限100 字节
 
上一个 下一个