0

我正在开发一个消息传递应用程序。我使用 QTextBrowser 来显示消息,但是当它被读取时,我使用 QTextCursor 对其进行了一些更改。

在我开始编辑文本之前,我可以访问我生成的任何超链接,但现在这个选项不再起作用。我仍然可以将 <.a href="smth">smth</a> 视为超链接(带下划线且颜色不同),但我无法访问它。

任何想法如何改变这个?

我的QTextBrowser配置:

textBrowserReadConversation->setTextInteractionFlags(Qt::TextBrowserInteraction | Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard | Qt::LinksAccessibleByMouse | Qt::LinksAccessibleByKeyboard);
textBrowserReadConversation->setOpenLinks(false);
textBrowserReadConversation->setOpenExternalLinks(true);
textBrowserReadConversation->setAcceptRichText(true);
textBrowserReadConversation->setReadOnly(false);

我这样设置 QTextCursor :

QTextDocument *document(textBrowserReadConversation->document());
QTextCursor cursor(document);
//then I move it to position, delete the previous text and paste the new text:
cursor.insertHtml(html);
4

1 回答 1

0

解决方案是将文本浏览器设置setTextInteractionFlags()(textInteractionFlags() | Qt::LinksAccessibleByMouse). 就我而言:

textBrowserReadConversation->setTextInteractionFlags(textBrowserReadConversation->textInteractionFlags() | Qt::LinksAccessibleByMouse | Qt::LinksAccessibleByKeyboard);

因为 QTextBrowser 在编辑文本后将其关闭。

我在这里找到了解决方案:

https://forum.qt.io/topic/70075/qtextbrowser-anchorclicked-not-emitted/2

但我会离开这个话题,因为我很难通过搜索引擎找到它。

于 2017-04-11T11:50:11.447 回答