我需要显示非常大的日志,使用 HTML 标签来标记不同类型的数据。
使用 QTextEdit 和 QTextBrowser 确实会减慢应用程序的速度,尤其是在追加操作上。我真的很想保留 QTextEdit 界面和功能。
我见过有人实现了自己风格的 TextEdit 来提高性能,但我想知道是否有人使用“Qt”工具解决了这个问题。我考虑过使用模型/视图框架来按需加载数据,但这并不完全是我认为的目的。
也许子类化 QTextEdit 并覆盖它的一些滚动槽...
如果有人遇到这个问题并解决了它,我会很感激一些提示。
谢谢。
将
QPlainTextEdit
用于大型日志文件——这就是它的设计目的。您无法获得 QTextEdit
提供的全部选项,但您可以设置字体和文本颜色。
由于您的日志在某种程度上可能是表格形式,因此模型/视图框架听起来适合您。也许你可以尝试使用
QListView
和 QGraphicsTextItem,它有设置/获取 HTML 的方法:
以这种方式编写你会得到一些好处和麻烦,但你当然应该能够巧妙地插入和追加速度。
为什么不使用
QWebKit
?模块本身比较重,但是渲染速度非常好。
由于使用模型/视图架构重新实现 QTextEdit 的投资回报率较低,因此我将同意 @spraff 关于使用分页的评论。
基本上我会限制日志中保留的行数,因为日志也会转储到文件中,如果用户需要过去或将来的某些内容(通过添加特殊按钮),我将从文件中读取它动态(轻量级模型/视图......)。