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

Gui*_*i13 14 c++ qt hyperlink qlabel

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

我的应用程序

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

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

<a href="http://google.fr"><span style=" text-decoration: underline; color:#0000ff;">Output File&quot;</span></a>
Run Code Online (Sandbox Code Playgroud)

(由Qt Designer生成)

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

<a href="#browse_output"><span style=" text-decoration: underline; color:#0000ff;">Output File&quot;</span></a>
Run Code Online (Sandbox Code Playgroud)

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

(pseudo code)

if( link_clicked.toString() == "#browse_output" ){
    on_browse_output_clicked();
}
Run Code Online (Sandbox Code Playgroud)

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

Gui*_*i13 32

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

  1. 禁用的" openExternalLinks"属性QLabel
  2. 连接信号的linkActivatedQLabel到您的处理.

这就是全部: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();
  }
}
Run Code Online (Sandbox Code Playgroud)