我需要显示非常大的日志,使用HTML标记来标记不同类型的数据。
使用QTextEdit和QTextBrowser确实会降低应用程序的速度,尤其是在附加操作上。我真的很想保留QTextEdit的界面和功能。
我见过一些人实现了自己风格的TextEdit来提高性能,但我不知道是否有人使用“Qt”工具解决了这个问题。我想过使用模型/视图框架来按需加载数据,但我认为这并不是它的本意。
也许可以子类化QTextEdit并覆盖它的一些滚动槽...
如果有人遇到这个问题并解决了它,我会很感激一些提示。
谢谢.
4条答案
按热度按时间9avjhtql1#
使用
QPlainTextEdit
来处理大型日志文件--这就是它的设计目的。你不能得到QTextEdit
提供的全部选项,但是你可以设置字体和文本颜色。eanckbw92#
既然你的日志在某种程度上是表格式的,那么Model/View框架听起来应该适合你。也许你可以尝试使用
QListView
和QGraphicsTextItem,它有设置/获取HTML的方法:这样编写代码会带来一些好处和麻烦,但您肯定能够巧妙地处理插入和追加速度。
ru9i0ody3#
为什么不使用
QWebKit
?模块本身是相当沉重的,但渲染速度非常好。mftmpeh84#
由于使用Model/View架构重新实现QTextEdit的ROI很低,我将使用@spraff评论使用分页。
基本上,我会限制我在日志中保留的行数,因为日志也被转储到一个文件中,如果用户需要过去或未来的东西(通过添加特殊按钮),我会动态地从文件中读取它(轻量级模型/视图...)。