无法单击 QTextDocument [qt] 编辑的 QTextBrowser 中的超链接
Posted
技术标签:
【中文标题】无法单击 QTextDocument [qt] 编辑的 QTextBrowser 中的超链接【英文标题】:Unable to click on hyperlinks in QTextBrowser edited by QTextDocument [qt] 【发布时间】:2017-04-11 11:28:45 【问题描述】:我正在开发一个消息传递应用程序。我使用 QTextBrowser 来显示消息,但是当它被读取时,我使用 QTextCursor 对其进行了一些更改。
在我开始编辑文本之前,我可以访问我生成的任何超链接,但现在这个选项不再起作用。我仍然可以看到 <.a href="smth">smth 作为超链接(下划线和不同颜色),但我无法访问它。
任何想法如何改变这一点?
我的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);
【问题讨论】:
【参考方案1】:解决方案是将文本浏览器setTextInteractionFlags()
设置为(textInteractionFlags() | Qt::LinksAccessibleByMouse)
。
就我而言:
textBrowserReadConversation->setTextInteractionFlags(textBrowserReadConversation->textInteractionFlags() | Qt::LinksAccessibleByMouse | Qt::LinksAccessibleByKeyboard);
因为 QTextBrowser 在编辑完文本后将其关闭。
我在这里找到了解决方案:
https://forum.qt.io/topic/70075/qtextbrowser-anchorclicked-not-emitted/2
但我会离开这个话题,因为我很难通过搜索引擎找到它。
【讨论】:
以上是关于无法单击 QTextDocument [qt] 编辑的 QTextBrowser 中的超链接的主要内容,如果未能解决你的问题,请参考以下文章
通过 QT 将(rtf)表复制到剪贴板(或:将 QTextDocument 写入剪贴板)