是否可以从 QT GUI 的文本浏览器读取数据
Posted
技术标签:
【中文标题】是否可以从 QT GUI 的文本浏览器读取数据【英文标题】:Is it possible to read data from the text browser of QT GUI 【发布时间】:2012-08-03 12:19:26 【问题描述】:我正在尝试在 QT 中制作聊天应用程序。是否可以从 QT GUI 的文本浏览器(显示对话)读取数据,以便我可以维护聊天记录...?请帮助...谢谢
【问题讨论】:
文本浏览器是什么样的控件? QLineEdit? @DarkXphenomenon 我认为他的意思是 QTextBrowser!? 提示:QTextBrowser 和父 QTextEdit。请参阅 tohtml()。下次使用手册。 @all :谢谢...抱歉我没看到... 我宁愿在您收到消息时将它们写入历史记录,这也可以让您更好地控制存储它的格式。(单个消息而不是一个大的 html blob)。跨度> 【参考方案1】:QTextBrowser
继承 QTextEdit
,它适用于 QTextDocument
。可以使用QTextDocument::toHtml()
将 QTextDocument 转换为(并另存为)HTML:
QTextDocument *doc = ui->textBrowser->document();
QString html = doc->toHtml();
我建议您在每次有新消息传入/传出时附加到日志文件,因此“并行”更新 QTextBrowser 和文件,并且不要每次都保存整个聊天记录出现一条新消息。
为此,请打开日志文件并手动写入打开的<html>
和<body>
标签而不关闭它们。然后将聊天日志条目附加到仍然打开的文件上。在应用程序退出时(聊天窗口的对象销毁或其他),关闭 </body>
和 </html>
标签,然后关闭文件本身。与每次更改 QTextBrowser 小部件时保存整个文件相比,这将产生更好的性能。
【讨论】:
【参考方案2】:类似的东西:
QString myQString = <textBrowserObject>.toPlainText();
【讨论】:
以上是关于是否可以从 QT GUI 的文本浏览器读取数据的主要内容,如果未能解决你的问题,请参考以下文章