大文件编辑器(QT)

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

一 综述实现方式

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

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

二 优缺点

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

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

备注:

1 append的效率比insert高;

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

相关推荐
谢尔登6 小时前
【VSCode】修改侧边文件资源管理器中的文件夹折叠模式
ide·vscode·编辑器
春蕾夏荷_7282977256 小时前
Qt 强大的窗口停靠浮动
qt·停靠·dock
新手村领路人7 小时前
qt5.14.2 opencv调用摄像头显示在label
qt·opencv·命令模式
bloglin999997 小时前
关闭VSCode 自动更新
ide·vscode·编辑器
__BMGT()10 小时前
C++ QT 打开图片
前端·c++·qt
向宇it10 小时前
【unity游戏开发——编辑器扩展】使用MenuItem自定义菜单栏拓展
开发语言·ui·unity·c#·编辑器·游戏引擎
谢尔登10 小时前
【VSCode】快捷键合集(持续更新~)
ide·vscode·编辑器
TNTLWT11 小时前
Qt控件:交互控件
开发语言·qt
溟洵14 小时前
【C++ Qt】布局管理器
开发语言·c++·qt
C++ 老炮儿的技术栈14 小时前
自定义CString类与MFC CString类接口对比
c语言·c++·windows·qt·mfc