大文件编辑器(QT)

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

一 综述实现方式

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

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

二 优缺点

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

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

备注:

1 append的效率比insert高;

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

相关推荐
----云烟----4 小时前
QT中QString类的各种使用
开发语言·qt
为什么每天的风都这么大6 小时前
Vscode/Code-server无网环境安装通义灵码
ide·vscode·阿里云·编辑器·ai编程·code-server
「QT(C++)开发工程师」10 小时前
【qt版本概述】
开发语言·qt
一路冰雨14 小时前
Qt打开文件对话框选择文件之后弹出两次
开发语言·qt
老赵的博客14 小时前
QT 自定义界面布局要诀
开发语言·qt
陌上阳光14 小时前
vscode连接远程开发机报错
ide·vscode·编辑器
码码哈哈0.015 小时前
VSCode 2022 离线安装插件QT VSTOOl报错此扩展不能安装在任何当前安装的产品上。
ide·vscode·qt
羊子雄起15 小时前
CKEditor前端样式和编辑器的样式不一致的问题
前端·编辑器
界面开发小八哥18 小时前
「Java EE开发指南」如何使用Visual JSF编辑器设计JSP?(一)
java·ide·java-ee·编辑器·myeclipse
feiyangqingyun18 小时前
Qt/C++离线地图的加载和交互/可以离线使用/百度和天地图离线/支持手机上运行
c++·qt·qt天地图·qt离线地图·qt地图导航