大文件编辑器(QT)

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

一 综述实现方式

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

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

二 优缺点

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

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

备注:

1 append的效率比insert高;

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

相关推荐
m0_5557629017 分钟前
多人协同进行qt应用程序开发应该注意什么?
开发语言·qt
划水哥~1 小时前
创建QMainWindow菜单栏
开发语言·c++·qt
強云1 小时前
界面架构 - 主流架构(Qt)
qt·架构
SNAKEpc121383 小时前
在MFC中使用Qt(五):MFC和Qt的共存和交互
c++·qt·mfc
@hdd11 小时前
Qt实现HTTP GET/POST/PUT/DELETE请求
qt·http
1alisa13 小时前
Sublime Text for Mac v4【注册汉化版】代码编辑器
macos·编辑器·sublime text
神码编程13 小时前
【Unity】 HTFramework框架(六十四)SaveDataRuntime运行时保存组件参数、预制体
unity·编辑器·游戏引擎
阳光_你好13 小时前
详细说明Qt 中共享内存方法: QSharedMemory 对象
开发语言·数据库·qt
爱吃馒头爱吃鱼13 小时前
QML编程中的性能优化二
开发语言·qt·学习·性能优化
mzak15 小时前
vscode集成deepseek实现辅助编程(银河麒麟系统)【详细自用版】
linux·vscode·编辑器·银河麒麟·deepseek