大文件编辑器(QT)

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

一 综述实现方式

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

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

二 优缺点

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

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

备注:

1 append的效率比insert高;

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

相关推荐
U-52184F691 天前
深度解析:从 Qt 的 Q_D 宏说起,C++ 工业级 SDK 是如何保证 ABI 稳定性的
数据库·c++·qt
weixin_464307631 天前
QT智能指针
java·数据库·qt
猿儿本无心1 天前
仿VSCode做一个程序员快速装机工具
ide·vscode·编辑器
code_计梦星河1 天前
Qt 开发第八天:双 TableView 实现规划板块增改功能
qt
blog.pytool.com1 天前
Ubuntu 22.04 解决 Qt 报错:Unknown module (s) in QT: qml quick
linux·qt·ubuntu
wumingqilin1 天前
QT 防抖和 节流处理
开发语言·qt
_林枭_1 天前
ZW3D二次开发_UI_ZsCcTableWidget表格控件
qt·ui·zw3d
qq_392807951 天前
Qt 注册 C++ 给 QML 调用的几种方式
数据库·c++·qt
_林枭_1 天前
ZW3D二次开发_UI_ZsCcTreeView树控件
qt·ui·zw3d
syjy21 天前
零基础WordPress建站:可视化编辑器推荐(2026版-含下载)
编辑器·wordpress插件·wordpress建站