2017-04-11 77 views
0

我正在开发一个消息应用程序。我使用QTextBrowser来显示消息,但是当它被读取时,我使用QTextCursor稍微改变了它。无法点击由QTextDocument编辑的QTextBrowser中的超链接[qt]

在我开始编辑文本之前,我可以访问我生成的任何超链接,但现在此选项不再有效。我仍然可以看到<。smt < ./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); 

回答

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

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