大文件编辑器(QT)

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

一 综述实现方式

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

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

二 优缺点

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

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

备注:

1 append的效率比insert高;

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

相关推荐
Lucky小小吴2 小时前
各大编码编辑器的缓存目录迁移到D盘【未完待续】
缓存·编辑器
开始了码3 小时前
关于qt运行程序点击几下未响应的原因
开发语言·qt
Kimser3 小时前
QT C++ QWebEngine与Web JS之间通信
javascript·c++·qt
QT 小鲜肉3 小时前
【QT/C++】Qt样式设置之CSS知识(系统性概括)
linux·开发语言·css·c++·笔记·qt
Main. 243 小时前
从0到1学习Qt -- 常见控件QWidget(二)
qt·学习
洛克希德马丁3 小时前
Qt配置安卓开发环境
android·开发语言·qt
我要升天!3 小时前
QT-- 理解项目文件
开发语言·数据库·qt
友善啊,朋友3 小时前
Qt:判断一个sql语句是否是select语句
sql·qt
言6664 小时前
vscode 设置中文-语言
ide·vscode·编辑器
西游音月6 小时前
(4)框架搭建:Qt实战项目之主窗体介绍
开发语言·qt