大文件编辑器(QT)

news/2024/9/20 6:33:55 标签: 编辑器, qt, 大文件

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

一 综述实现方式

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

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

二 优缺点

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

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

备注:

1 append的效率比insert高;

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


http://www.niftyadmin.cn/n/5666775.html

相关文章

从openAI最新模型GPT-o1再谈思维链(Cot)技术,大模型该怎么提升其逻辑推理能力?

“ 推理能力是大模型迈向AGI的必经之路 ” 最近openAI发布了号称史上最强模型——o1,其具有强大的逻辑推理能力,号称能达到人类的博士生水平。 而从o1模型的评测来看,o1模型在数学竞赛,编码,科学问答等方面表现良好,甚至高出了GPT4o一大截。 而且,o1在物理,化学,生…

Vue:加载本地视频

目录 封装视频弹框调用视频组件 封装视频弹框 <template><el-dialog class"videoBox" :title"title" :visible.sync"visible" width"40%" :before-close"handleOnClose" :close-on-click-modal"false" …

用 ReactPHP 实现图片上传加速:让并发上传实现真正的高效

在这个数据爆炸的时代&#xff0c;如何更快、更高效地处理上传任务是每个开发者面临的重要挑战。尤其当我们要上传大量图片时&#xff0c;简单的同步上传方法早已不再满足现代应用的需求。那么问题来了——有没有一种方法能并发上传图片&#xff0c;同时最大限度减少响应时间&a…

Web APIs 第二天

第二天&#xff1a;DOM事件基础&#xff0c;注册事件&#xff0c;tab栏切换 添加事件监听 <body><button>点击</button><script>const btn document.querySelector(button)btn.addEventListener(click, function () {alert(嗲你)})</script> …

电线电缆制造5G智能工厂物联数字孪生平台,推进制造业数字化转型

电线电缆制造行业作为关键的基础设施建设领域&#xff0c;正积极拥抱新技术&#xff0c;推动生产方式的深刻变革。电线电缆制造5G智能工厂物联数字孪生平台的兴起&#xff0c;不仅为行业注入了新的活力&#xff0c;更为制造业的数字化转型树立了新的标杆。 电线电缆制造5G智能…

Reactor介绍,如何从简易版本的epoll修改成Reactor模型(demo版本代码+详细介绍)

目录 Reactor demo​​​​​​​ 引入 比喻 修改代码 connection tcp_server ET模式 主逻辑 处理事件 运行结果 代码 完善功能 读取数据 运行结果 ​编辑 代码 处理数据 回指指针 如何处理写事件 引入 循环内 处理对写事件的关心 异常处理 代码 se…

《网络故障处理案例:公司网络突然中断》

网络故障处理案例&#xff1a;公司网络突然中断 一、故障背景 某工作日上午&#xff0c;一家拥有 500 名员工的公司突然出现整个网络中断的情况。员工们无法访问互联网、内部服务器和共享文件&#xff0c;严重影响了工作效率。 二、故障现象 1. 所有员工的电脑…

Linux基础---07文件传输及解决yum安装失效的方法

Linux文件传输地图如下&#xff0c;先选取你所需的场景&#xff0c;若你是需要Linux和Linux之间传输文件就查看SCP工具即可。 一.下载网站文件 前提是有网&#xff1a; 检查网络是否畅通命令&#xff1a;ping www.baidu.com&#xff0c;若有持续的返回值就说明网络畅通。Ctr…