大文件编辑器(QT)

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

一 综述实现方式

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

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

二 优缺点

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

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

备注:

1 append的效率比insert高;

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

相关推荐
励志要当大牛的小白菜3 小时前
ART配对软件使用
开发语言·c++·qt·算法
程序员编程指南10 小时前
Qt 数据库连接池实现与管理
c语言·数据库·c++·qt·oracle
晨风先生11 小时前
如何Visual Studio 的配置从 Qt-Debug 切换到 x64-Debug
ide·qt·visual studio
程序员编程指南13 小时前
Qt OpenGL 集成:开发 3D 图形应用
c语言·数据库·c++·qt·3d
要加油哦~15 小时前
工具 | 解决 VSCode 中的 Delete CR 问题
ide·vscode·编辑器
程序员编程指南15 小时前
Qt 网络编程进阶:RESTful API 调用
c语言·网络·c++·qt·restful
程序员编程指南16 小时前
Qt XML 与 JSON 数据处理方法
xml·c语言·c++·qt·json
程序员编程指南17 小时前
Qt 网络编程进阶:网络安全与加密
c语言·网络·c++·qt·web安全
2301_8035545218 小时前
【无标题】
开发语言·qt
程序员编程指南20 小时前
Qt字符串处理与正则表达式应用
c语言·c++·qt·正则表达式