如何使 QGraphicsTextItem 可点击?
在我的软件的“关于”框中,我使用 QGraphicsTextItem 来显示关于文本。
该文本包含超文本链接(格式为:link
)。
该项目正确显示(超文本链接为蓝色并带有下划线)。但是,当我点击它们时,什么也没有发生。
以下是我创建 QGraphicsTextItem
的方式:
d_about_text_item = new QGraphicsTextItem;
d_about_text_item->setTextInteractionFlags(Qt::TextBrowserInteraction);
d_about_text_item->setHtml(aboutText());
据我了解 Qt 文档,对 setTextInteractionFlags
的调用应该允许我处理特殊的超文本链接点击事件。
我还应该做些什么才能单击链接并在默认系统浏览器中显示链接页面?
In the "About box" of my software, I used a QGraphicsTextItem
to show the about-text.
This text contains hypertext links (in the form of: <a href="http://some.random.site">link</a>
).
The item shows up properly (hypertext links are blue and underlined). However, when I click on them, nothing happens.
Here is how I created the QGraphicsTextItem
:
d_about_text_item = new QGraphicsTextItem;
d_about_text_item->setTextInteractionFlags(Qt::TextBrowserInteraction);
d_about_text_item->setHtml(aboutText());
As I understand the Qt documentation, the call to setTextInteractionFlags
should allow me to handle special hypertext links click events.
Is there anything else I should do to be able to click on the links and show up the linked page in the default system browser ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我发现我做错了什么:
我的包含
QGraphicsView
的setInteractive()
设置为false
。我删除了它,从现在开始,它工作得很好。I found what I did wrong:
My containing
QGraphicsView
hadsetInteractive()
set tofalse
. I removed it and since now, it works fine.FWIW 我使用标准 QMessageBox::about 方法并简单地传递原始 HTML 作为文本 - 链接工作正常。
FWIW I use the standard QMessageBox::about method and simply pass raw HTML as the text - links work fine.