大文件编辑器(QT)

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

一 综述实现方式

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

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

二 优缺点

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

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

备注:

1 append的效率比insert高;

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

相关推荐
zhanghaha13147 小时前
Qt 类本质就是 C++ 的类,只是 Qt 框架扩展了一套【QObject 对象模型】
qt
广东帝工7 小时前
智慧航道:技术体系
编辑器
Cx330❀14 小时前
深入浅出 Qt 绘图机制:从 QPainter 到四大图像类解析
开发语言·qt·ui·性能优化·图形渲染
Littlehero_12115 小时前
QT自定义控件之水泥厂组态(源码开源)
开发语言·qt
丑大王16 小时前
ultralytics 环境安装与正确使用Vscode
ide·yolo·编辑器
代钦塔拉18 小时前
【C++/Qt 进阶】设计模式系列(6):桥接模式——把“两个独立变化的维度“拆开
c++·qt·设计模式
鸽芷咕19 小时前
把 SQL 编辑器用顺:KSQL Developer 从补全到事务的实战笔记
笔记·sql·编辑器
1560820721919 小时前
银河麒麟 Qt 可执行文件打包说明
开发语言·驱动开发·qt
Quz20 小时前
QML GridView 布局:网格排布与排列方向
qt
Quz20 小时前
QML GridView 动态:增删过渡与滚动定位
qt