大文件编辑器(QT)

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

一 综述实现方式

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

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

二 优缺点

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

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

备注:

1 append的效率比insert高;

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

相关推荐
丰锋ff几秒前
1.7在Qt窗口中添加右键菜单
开发语言·qt
拂拉氏1 小时前
【知识讲解】 Linux中vim编辑器的学习与使用
linux·编辑器·vim
愚公搬代码3 小时前
【愚公系列】《Web应用安全》005-Visual Studio Code编辑器的使用
前端·安全·编辑器
richard_yuu4 小时前
JSON vs XML vs 二进制:3种序列化终极选型
xml·c++·qt·学习·json
秋田君5 小时前
QT_实战TCP 聊天程序说明文档以及实现
数据库·qt·tcp/ip
浔川python社17 小时前
浔川系列产品后台维护与漏洞修复公告
编辑器
byxdaz18 小时前
QT中服务使用
开发语言·qt
秋田君1 天前
QT_网络编程体系
网络·arm开发·qt
Quz1 天前
QML TextArea 实战(下):大文本加载与性能优化
qt
Quz1 天前
QML TextArea 实战(中):Markdown 渲染与保持滚动
qt