大文件编辑器(QT)

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

一 综述实现方式

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

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

二 优缺点

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

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

备注:

1 append的效率比insert高;

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

相关推荐
clever1011 小时前
在QtCreator 4.10.2中调试qt程序qDebug()输出中文为乱码问题的解决
开发语言·qt
吕司3 小时前
Qt的信号与槽
开发语言·qt
轩情吖5 小时前
Qt的窗口(三)
c++·qt
mengzhi啊6 小时前
qt加载了.qm却没有反应。因为加载时间太晚了
qt
C语言小火车8 小时前
Qt样式实现方式详解:六大方法全面解析
c语言·c++·qt·学习
Anarkh_Lee9 小时前
在VSCode中使用MCP实现智能问数
数据库·ide·vscode·ai·编辑器·ai编程·数据库开发
ae_zr9 小时前
QT静态库如何使用
qt·压缩·静态exe
mengzhi啊9 小时前
针对no TS files specified。使用qt语言家,内网加密软件,不能生成.ts。当3种方法失效,还剩最后一种方法。
qt
Doro再努力9 小时前
【Linux操作系统07】包管理器与Vim编辑器:从理论到实践的全面解析
linux·编辑器·vim
木千10 小时前
Qt5.15.2安装MSVC2019编译器
开发语言·qt