linux Qt显示超大型富文本的最佳方式是什么?

ar5n3qh5  于 2023-11-17  发布在  Linux
关注(0)|答案(4)|浏览(126)

我需要显示非常大的日志,使用HTML标记来标记不同类型的数据。
使用QTextEdit和QTextBrowser确实会降低应用程序的速度,尤其是在附加操作上。我真的很想保留QTextEdit的界面和功能。
我见过一些人实现了自己风格的TextEdit来提高性能,但我不知道是否有人使用“Qt”工具解决了这个问题。我想过使用模型/视图框架来按需加载数据,但我认为这并不是它的本意。
也许可以子类化QTextEdit并覆盖它的一些滚动槽...
如果有人遇到这个问题并解决了它,我会很感激一些提示。
谢谢.

9avjhtql

9avjhtql1#

使用QPlainTextEdit来处理大型日志文件--这就是它的设计目的。你不能得到QTextEdit提供的全部选项,但是你可以设置字体和文本颜色。

eanckbw9

eanckbw92#

既然你的日志在某种程度上是表格式的,那么Model/View框架听起来应该适合你。也许你可以尝试使用QListViewQGraphicsTextItem,它有设置/获取HTML的方法:

  • QGraphicsTextItem::setHtml.
  • QGraphicsTextItem::toHtml

这样编写代码会带来一些好处和麻烦,但您肯定能够巧妙地处理插入和追加速度。

ru9i0ody

ru9i0ody3#

为什么不使用QWebKit?模块本身是相当沉重的,但渲染速度非常好。

mftmpeh8

mftmpeh84#

由于使用Model/View架构重新实现QTextEdit的ROI很低,我将使用@spraff评论使用分页。
基本上,我会限制我在日志中保留的行数,因为日志也被转储到一个文件中,如果用户需要过去或未来的东西(通过添加特殊按钮),我会动态地从文件中读取它(轻量级模型/视图...)。

相关问题