是否可以从 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 的文本浏览器读取数据的主要内容,如果未能解决你的问题,请参考以下文章

从 GUI 读取数据

QT读取剪切板内容-实现复制粘贴文本和图片

QT读取文本文件

QT读取剪切板内容-实现复制粘贴文本和图片

从文本文件读取,然后写入 QT 中的同一文件(高分功能)

如何从文件中读取数据并在 QT 的 QEditText 框中显示