我有一个具有某种日志查看器的应用程序,该应用程序需要能够实时呈现插入其中的格式化日志记录。
我正在Qt中编写此代码,到目前为止,我正在使用QTextEdit
渲染文本,使用一些html标签对其进行了美化,随后又使用setHtml
或insertHtml
插入了该文本。
但是,问题在于这些功能耗费大量CPU资源,并且运行了很长时间,使整个应用程序无法正常运行。
在这里提出了类似的问题:QTextEdit.insertHtml() is very slow
除了没有真正有用的答案之外,它除了说明它确实很慢之外,实际上还提出了其他问题。我不需要加快setHtml
或insertHtml
的速度。如果可能,我愿意使用完全不同的技术。
Qt中是否有任何机制可以真正快速地插入文本?或者,甚至与QTextEdit
完全不同的组件?
有什么方法可以将新行追加到QTextEdit
中,该行包含非常快速的富文本格式(以任何方式生成)?
我也注意到QTextBrowser
,但它似乎只是TextEdit的扩展,会更快吗?
最佳答案
您应该尝试 QPlainTextEdit
。它使用与 QTextEdit
相同的技术,但速度更快。它针对纯文本处理进行了优化,但是不要让它愚弄您,它仍然对使用HTML格式设置提供了一些基本支持。您可以使用 appendHtml()
附加HTML格式的文本。