【问题标题】:Is it possible to read data from the text browser of QT GUI是否可以从 QT GUI 的文本浏览器读取数据
【发布时间】:2012-08-03 12:19:26
【问题描述】:

我正在尝试在 QT 中制作聊天应用程序。是否可以从 QT GUI 的文本浏览器(显示对话)读取数据,以便我可以维护聊天记录...?请帮助...谢谢

【问题讨论】:

  • 文本浏览器是什么样的控件? QLineEdit?
  • @DarkXphenomenon 我认为他的意思是 QTextBrowser!?
  • 提示:QTextBrowser 和父 QTextEdit。请参阅 toHtml()。下次使用手册。
  • @all :谢谢...抱歉我没看到...
  • 我宁愿在您收到消息时将它们写入历史记录,这也可以让您更好地控制存储它的格式。(单个消息而不是一个大的 html blob)。跨度>

标签: qt datareader qtextbrowser


【解决方案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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-28
      • 1970-01-01
      • 1970-01-01
      • 2016-03-12
      • 1970-01-01
      • 2021-11-25
      • 1970-01-01
      相关资源
      最近更新 更多