我需要显示非常大的日志,使用HTML标记标记不同types的数据。
使用QTextEdit和QTextBrowser真的会减慢应用程序,特别是在追加操作。 我真的想保持QTextEdit界面和能力。
我见过一些实现了自己的TextEdit风格的人来提高性能,但是如果有人使用“Qt”工具解决了这个问题的话,我会徘徊不前。 我想过使用Model / View框架来根据需要加载数据,但这不像我想的那样。
也许inheritanceQTextEdit并覆盖一些插槽滚动…
如果有人遇到这个问题,并解决它,我将不胜感激一些提示。
谢谢。
由于您的日志大概是在某个级别上的表格,那么Model / View框架听起来像是可以为您工作的。 也许你可以尝试与QGraphicsTextItem
使用QListView
:
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
通过这种方式编写,你会得到一些好处和麻烦。 但是你一定能够熟练的插入和追加速度。
将QPlainTextEdit
用于大型日志文件 – 这就是它的设计目的。 你没有得到QTextEdit
提供的全部选项,但你可以设置字体和文本的颜色。
为什么不使用QWebKit
? 模块本身相当重,但渲染速度非常好。
由于使用Model / View体系结构重新实现QTextEdit的投资回报率很低,我将使用@spraff评论使用分页。
基本上我会限制我在日志中的行数,因为日志也被转储到一个文件中,如果用户需要过去或将来的某些东西(通过添加特殊按钮),我将从文件中动态读取(轻量级模型/视图….)。