[Qt学习笔记] 解决QTextEdit数据过多UI卡死问题

devtools/2024/10/19 2:26:51/

背景问题

在项目中使用QTextEdit显示软件的日志信息,由于在连续输出日志信息,刚开始QTextEdit显示没什么问题,长时间就会出现UI界面卡死,内存占用变高。晚上查了说QTextEdit的append函数如果不释放会累计增加内存,包括QPlainTextEdit的appendPlainText函数也有这个问题。这里需要定期或定量去清空内容。

解决方法

设置QTextEdit的最大显示函数

//设置日志显示最多5000行ui->txt_sysLog->document()->setMaximumBlockCount(5000);

这里设置QTextEdit的最大显示行数为5000行,这样超过5000行,会自动释放5000行之前的内容。

其他知识点

1.QTextEdit不太适合处理大量的文本数据,如果需要加载较大容量的数据,QTextEdit可能会出现反应延时或卡死,因为UI一直被阻塞,如果需要不断处理大量的文本数据,最好将文本处理单独放在一个线程中执行,保持UI不被阻塞。
2.频繁更新文本或处理大量数据,建议使用QPlainTextEdit,处理效率更高。
3.使用过程中注意内存管理,设置QTextEdit的最大显示行数,或及时清理显示的数据信息。


http://www.ppmy.cn/devtools/124618.html

相关文章

Axure PR 9 开关切换 设计交互

大家好,我是大明同学。 这期内容,我们来探讨Axure开关按钮设计与交互技巧​。 创建切换开关所需的元件 1.打开一个新的 RP 文件并在画布上打开 Page 1。 2.将“圆形”元件拖到画布上,在样式窗格中将高度和宽度设置为35,线段宽度…

springboot-网站开发-使用slf4j实现网站异常错误的及时跟踪定位

springboot-网站开发-使用slf4j实现网站异常错误的及时跟踪定位!项目部署,开发好后,部署到远程服务器上面了,运行过程中,难免会遇到一些错误和异常情况,我们需要借助一些插件来帮助我们及时捕捉这类错误和异…

Mecari注册运营IP指南

热门电商平台如Meicari(煤炉)近几年在跨境中非常火爆。然而,对于国内卖家来说,要成功在Meicari平台上运营,不仅需要优质的商品和服务,还需要稳定而可靠的网络支持。 一、静态IP是什么? Meicari…

docker tar包安装 docker-26.1.4.tgz

一、docker安装 1.先将docker安装包(docker-26.1.4.tgz)拷贝到DM系统中。 下载地址 Index of linux/static/stable/x86_64/ 1.先将docker安装包(docker-26.1.4.tgz)拷贝到DM系统中。 2.解压docker安装包 tar zxf docker-26.1.…

IDM 6.42下载器 – 经典优秀的多线程加速下载工具

相信大家都知道,作为下载软件的「IDM」,你一定听说过这个名字吧!全称叫做Internet Download Manager,简称IDM。 IDM是一款非常经典且功能强大的Windows文件多线程下载加速软件。它具有强大的多线程下载加速功能,提供自…

Linux云计算 |【第四阶段】RDBMS2-DAY1

主要内容: MySQL主从同步(概述、原理、构建主从同步)、主从同步结构类型(主多从、主从从、主主)、复制模式(异步、半同步)、启用半同步复制 一、MySQL主从同步 MySQL 主从同步(Mas…

活动预告|博睿数据将受邀出席GOPS全球运维大会上海站!

第二十四届 GOPS 全球运维大会暨研运数智化技术峰会上海站将于2024年10月18日-19日在上海中庚聚龙酒店召开。大会将为期2天,侧重大模型、DevOps、SRE、AIOps、BizDevOps、云原生及安全等热门技术领域。特设了如大模型 运维/研发测试、银行/证券数字化转型、平台工程…

PostgreSQL与MySQL在语法上的区别

1. 数据库管理 1.1 查看数据库 PostgreSQL: 使用 \l 命令列出所有数据库,或者查询系统表 pg_database。 -- PostgreSQL \l -- 或者 SELECT datname FROM pg_database;MySQL: 使用 SHOW DATABASES; 来列出所有数据库。 -- MySQL SHOW DATABASES;2. 表的管理 2.1 数…