大文件编辑器(QT)

项目需要做一个大文件编辑器,并对文件中特定的字符串进行高亮显示,尝试过几种方式。这里的大文件是指>=几百兆的文件。

一 综述实现方式

方式1 用普通的QTextEdit来分段加载显示文本,当单段文本显示完毕并且继续向下拖动滚动条时,才加载显示下一段文本;同时搭配使用QSyntexHeighlighter来进行高亮。

方式2 集成QSciscintilla编辑器,并利用词法编辑器来进行高亮。

二 优缺点

方式1,分段加载的方式会使搜索等针对全文本的操作逻辑变得复杂,且当文本很大时,使用QSyntexHeighlighter来做高亮,会降低大文件的加载速度。(分析了下,似乎因为QSyntexHeighlighter底层采用正则的方式来匹配字符串,从而拖慢速度。)

方式2,简单,但需要掌握QSciscintilla编辑器及词法器的使用方法。

备注:

1 append的效率比insert高;

2 但append会自动插入换行符;需写逻辑取消

相关推荐
jinhuazhe201338 分钟前
如何解决vscode powershell乱码
ide·vscode·编辑器
mahuifa1 小时前
混合开发环境---使用编程AI辅助开发Qt
人工智能·vscode·qt·qtcreator·编程ai
冷眼看人间恩怨1 小时前
【Qt笔记】QDockWidget控件详解
c++·笔记·qt·qdockwidget
paintstar4 小时前
vscode 快速切换cangjie版本
ide·vscode·编辑器·仓颉·cangjie
科协软件20184 小时前
vscode+latex快捷键
ide·vscode·编辑器
半糖11225 小时前
【VSCode】常用插件汇总
vscode·编辑器
cnnews5 小时前
在vscode中的ESP-IDF插件中使用Arduino框架作为组件
ide·vscode·编辑器
云空6 小时前
《QT 5.14.1 搭建 opencv 环境全攻略》
开发语言·qt·opencv
乐闻x6 小时前
VSCode 插件开发实战(三):插件配置项自定义设置
ide·vscode·编辑器
小老鼠不吃猫7 小时前
力学笃行(二)Qt 示例程序运行
开发语言·qt