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

时间:2011-08-02 15:00:17

标签: c++ linux qt qt4

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

使用QTextEdit和QTextBrowser确实会降低应用程序的速度,特别是在追加操作时。我真的想保留QTextEdit界面和功能。

我见过有人实现了自己的TextEdit风格以提高性能,但是如果有人使用“Qt”工具解决了这个问题,我就会徘徊。我考虑过使用Model / View框架按需加载数据,但这并不是我想的那样。

也许继承QTextEdit并覆盖其部分插槽以进行滚动...

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

感谢。

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

http://doc.qt.nokia.com/latest/qgraphicstextitem.html

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

http://doc.qt.nokia.com/latest/qgraphicstextitem.html#setHtml

http://doc.qt.nokia.com/latest/qgraphicstextitem.html#toHtml

通过这种方式编写,您将获得一些好处和麻烦。但是你当然应该能够精确插入并加快速度。

答案 2 :(得分:0)

为什么不使用QWebKit?模块本身很重,但渲染速度非常好。

答案 3 :(得分:0)

由于使用Model / View架构重新实现QTextEdit的ROI很低,我将使用@spraff评论使用分页。

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