大文件编辑器(QT)

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

一 综述实现方式

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

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

二 优缺点

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

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

备注:

1 append的效率比insert高;

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

相关推荐
掘根5 小时前
【Qt】布局管理器
开发语言·qt
jerryinwuhan5 小时前
VIM和Linux命令速查表
linux·编辑器·vim
jedi-knight15 小时前
Vscode+CMake编译时出现中文乱码
ide·vscode·编辑器
神洛华17 小时前
YDWE编辑器系列教程三:触发编辑器
游戏·编辑器
得鹿梦鱼、18 小时前
QT示例 使用QTcpSocket和QTcpServer类实现TCP的自定义消息头、消息体通信示例
qt·qtcpsocket·qtcpserver·二进制协议通信·pimpl模式
egoist202320 小时前
[linux仓库]深入解析Linux动态链接与动态库加载:理解背后的原理与技巧
linux·服务器·编辑器·动态库·got
神洛华21 小时前
YDWE编辑器系列教程一:编辑器界面
游戏·编辑器
茉莉玫瑰花茶21 小时前
Qt 界面优化 --- 绘图
开发语言·数据库·qt
掘根21 小时前
【Qt】容器类控件——QTabWidget
开发语言·qt
hqwest21 小时前
QT肝8天07--连接数据库
开发语言·数据库·c++·qt·sqlite·上位机·qt开发