在我的软件的“关于框”中,我使用QGraphicsTextItem
来显示有关文本。
此文本包含超文本链接(格式为:<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 documentation,对setTextInteractionFlags
的调用应该允许我处理特殊的超文本链接点击事件。
我还有什么办法可以点击链接并在默认系统浏览器中显示链接页面吗?
答案 0 :(得分:2)
我发现我做错了什么:
我的QGraphicsView
我的setInteractive()
设置为false
。我删除它,从现在开始,它工作正常。
答案 1 :(得分: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>"));