我需要显示非常大的日志,这些日志使用HTML标记来标记不同类型的数据。
使用QTextEdit和QTextBrowser确实会降低应用程序的速度,特别是在追加操作时。我真的想保留QTextEdit界面和功能。
我见过有人实现了自己的TextEdit风格以提高性能,但是如果有人使用“Qt”工具解决了这个问题,我就会徘徊。我考虑过使用Model / View框架按需加载数据,但这并不是我想的那样。
也许继承QTextEdit并覆盖其部分插槽以进行滚动...
如果有人遇到这个问题并解决了,我会很感激一些提示。
感谢。
答案 0 :(得分:2)
将QPlainTextEdit
用于大型日志文件 - 这就是它的设计目标。您没有获得QTextEdit
提供的全部选项,但您可以设置字体和文本颜色。
答案 1 :(得分:1)
由于您的日志在某种程度上可能是表格,因此模型/视图框架听起来可能对您有用。也许您可以尝试使用QListView
与QGraphicsTextItem
:
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评论使用分页。
基本上我会限制我在日志中保留的行数,因为日志也会被转储到文件中,如果用户需要过去或将来的东西(通过添加特殊按钮),我会从动态文件(轻量级模型/视图....)。