大文件编辑器(QT)

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

一 综述实现方式

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

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

二 优缺点

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

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

备注:

1 append的效率比insert高;

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

相关推荐
阳光开朗_大男孩儿29 分钟前
阻塞信号(`blockSignals(true)`)的作用
linux·c++·qt·ui
flower98032338 分钟前
基于QT的C++中小项目软件开发架构源码
c++·qt·架构
徐同保1 小时前
Vue3 + Monaco Editor Web编辑器
编辑器
martian6653 小时前
QT开发:详解 Qt 多线程编程核心类 QThread:基本概念与使用方法
开发语言·c++·qt
景天科技苑3 小时前
【python】PyQt5中QButtonGroup的详细用法解析与应用实战
开发语言·python·qt·pyqt5·qbuttongroup
不是笨小孩i10 小时前
【QT】QWidget 重要属性
开发语言·qt
cefler12 小时前
【QT】系统-下
开发语言·qt
比特 GOK12 小时前
9_23_QT窗口
qt
yohoo菜鸟14 小时前
解决Typora图片复制到CSDN无法查看问题
编辑器
不是仙人的闲人19 小时前
QRegularExpression
c++·qt