Qt 显示非常大的富文本的最佳方式?

问题描述 投票:0回答:4

我需要显示非常大的日志,使用 HTML 标签来标记不同类型的数据。

使用 QTextEdit 和 QTextBrowser 确实会减慢应用程序的速度,尤其是在追加操作上。我真的很想保留 QTextEdit 界面和功能。

我见过有人实现了自己风格的 TextEdit 来提高性能,但我想知道是否有人使用“Qt”工具解决了这个问题。我考虑过使用模型/视图框架来按需加载数据,但这并不完全是我认为的目的。

也许子类化 QTextEdit 并覆盖它的一些滚动槽...

如果有人遇到这个问题并解决了它,我会很感激一些提示。

谢谢。

c++ linux qt qt4
4个回答
2
投票

QPlainTextEdit
用于大型日志文件——这就是它的设计目的。您无法获得
QTextEdit
提供的全部选项,但您可以设置字体和文本颜色。


1
投票

由于您的日志在某种程度上可能是表格形式,因此模型/视图框架听起来适合您。也许你可以尝试使用

QListView
QGraphicsTextItem,它有设置/获取 HTML 的方法:

以这种方式编写你会得到一些好处和麻烦,但你当然应该能够巧妙地插入和追加速度。


0
投票

为什么不使用

QWebKit
?模块本身比较重,但是渲染速度非常好。


0
投票

由于使用模型/视图架构重新实现 QTextEdit 的投资回报率较低,因此我将同意 @spraff 关于使用分页的评论。

基本上我会限制日志中保留的行数,因为日志也会转储到文件中,如果用户需要过去或将来的某些内容(通过添加特殊按钮),我将从文件中读取它动态(轻量级模型/视图......)。

© www.soinside.com 2019 - 2024. All rights reserved.