19

私のこのアプリケーションでリンクへのクリックを処理したいと思います。

私のアプリケーション

「出力ファイル」リンクをクリックしたときに、アプリケーションでアクションを生成できるようにしたいと考えています。

現在、リンクはリッチ テキスト QLabel で次のように記述されています。

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

(Qt Designer で生成)

クリックすると、デフォルトの Web ブラウザーが開き、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();
}

これは、QLabel (またはそれに近いもの) を使用して Qt で可能ですか? どのように?

4

1 に答える 1

37

わかりました、興味のある人のために、私は答えを得ました:

  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();
  }
}
于 2013-05-16T07:37:21.900 に答える