在QLabel中插入可点击链接并检测单击此链接以激发操作

时间:2013-05-16 07:27:47

标签: c++ qt hyperlink qlabel

我想点击这个应用程序中的链接:

my application

当我点击“输出文件”链接时,我希望能够在我的应用程序中生成一个动作。

截至今天,链接在富文本QLabel中描述如下:

<a href="http://google.fr"><span style=" text-decoration: underline; color:#0000ff;">Output File&quot;</span></a>

(由Qt Designer生成)

点击后,它会打开默认的网络浏览器以转到Google。那不是我想要的;我喜欢这样的东西:

<a href="#browse_output"><span style=" text-decoration: underline; color:#0000ff;">Output File&quot;</span></a>

能够检测到点击的链接并做出相应的反应:

(pseudo code)

if( link_clicked.toString() == "#browse_output" ){
    on_browse_output_clicked();
}

这是否可以在Qt中使用QLabel(或接近某些东西)?怎么样?

1 个答案:

答案 0 :(得分:29)

好的,对于那些感兴趣的人,我得到了答案:

  1. 停用openExternalLinks
  2. 的“QLabel”属性
  3. QLabel的信号linkActivated连接到您的处理程序。
  4. 这就是全部:linkActivated为您提供链接在参数中引用的URL,因此我的伪代码可以正常工作。

    // header
    private slots:
      void on_description_linkActivated(const QString &link);
    
    // cpp
    void KernelBuild::on_description_linkActivated(const QString &link)
    {
      if( link == "#browse_output" ){
        on_outfilebtn_clicked();
      }
    }