大文件编辑器(QT)

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

一 综述实现方式

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

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

二 优缺点

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

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

备注:

1 append的效率比insert高;

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

相关推荐
前端市界14 小时前
前端视角: PyQt6+Vue3 跨界开发实战
前端·qt·pyqt
誰能久伴不乏19 小时前
Qt 动态属性(Dynamic Property)详解
开发语言·qt
枫叶丹420 小时前
【Qt开发】常用控件(四)
开发语言·qt
茉莉玫瑰花茶1 天前
Qt 常用控件 - 9
开发语言·qt
QL.ql1 天前
vscode的ws环境,esp32s3连接wifi
ide·vscode·编辑器
_错错错2 天前
Vim 常用快捷键及插件
编辑器·vim·linux 开发工具
sqmeeting2 天前
QT6 如何在Linux Wayland 桌面系统抓屏和分享屏幕
linux·qt
大白同学4212 天前
【Linux】编辑器vim的使用
linux·编辑器·vim
星火飞码iFlyCode2 天前
真实案例 | 如何用iFlyCode开发Webpack插件?
java·python·编辑器
东方不败耶耶耶2 天前
Notepad++插件开发实战指南
编辑器