1

ソフトウェアの「About box」で、a を使用しQGraphicsTextItemて about-text を表示しました。

このテキストにはハイパーテキスト リンクが含まれています (形式: <a href="http://some.random.site">link</a>)。

アイテムは正しく表示されます (ハイパーテキスト リンクは青色で下線が引かれています)。ただし、それらをクリックしても何も起こりません。

これが私が作成した方法ですQGraphicsTextItem

d_about_text_item = new QGraphicsTextItem;
d_about_text_item->setTextInteractionFlags(Qt::TextBrowserInteraction);
d_about_text_item->setHtml(aboutText());

Qtのドキュメントを理解しているので、への呼び出しにより、setTextInteractionFlags特別なハイパーテキストリンクのクリックイベントを処理できるはずです。

リンクをクリックしてリンク先のページをデフォルトのシステム ブラウザに表示できるようにするために他にすべきことはありますか?

4

2 に答える 2

2

私が間違ったことを見つけました:

私の含むQGraphicsViewはにsetInteractive()設定されていましたfalse。私はそれを削除しましたが、今では正常に動作しています。

于 2010-09-02T08:33:42.527 に答える
0

FWIW 標準の QMessageBox::about メソッドを使用し、生の HTML をテキストとして渡すだけです。リンクは正常に機能します。

QMessageBox::about(this, tr("About"), tr("<h1>My App</h1><p><a href='www.stackoverflow.com'>Click me!</a></p>"));
于 2010-09-02T09:39:30.947 に答える