QChart显示的点多了之后会卡顿的问题,解决方案

本文通过实际测试对比了QCustomPlot和QChart在处理大量数据时的性能表现,发现QCustomPlot在处理100万个数据点时仍能保持流畅,而QChart即使启用OpenGL也只能处理约4万个点,且存在X轴类型限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------------------------后记--------------------

试用了一下第三方绘图控件QCustomPlot,比QT自带的QChart强百倍,实测100万个点都不卡顿,非常流畅,QChart被完全碾压。

参考我的另一篇博文:《QCustomPlot系列(4)-实时动态曲线

https://blog.csdn.net/qq_31073871/article/details/90260275

我的QCustomPlot几篇系列博文:  https://blog.csdn.net/qq_31073871/article/category/8935784

 

对于QChart,一个稍微能缓解卡顿的方案就是:series->setUseOpenGL(true);

经过测试:不使用openGL时,单条曲线3000个点左右就卡的不行了,界面中的其他按钮几乎卡的点不了,chart图形也更新不动了。

使用openGL之后,我测试采集了4万多个点,显示依然正常,用鼠标移动图像时,略有卡顿,但卡顿很轻可以接受,用鼠标框选放大也没问题,界面中的其他按钮响应很快,跟不使用openGL相比,性能提升太多了。不过也有遗憾,5W个点时,还是卡了。

在开启openGl之后,有2点缺憾:

1、X轴只能使用原生数据轴QValueAxis,X轴无法使用时间轴QDateTimeAxis,我实测发现,采用时间轴的点,在开启OpenGL之后,曲线无法显示。

2、性能提升有限,也就提升了10倍,很多时候,4万个点时远远满足不了项目需求的,趁早放弃QChart才是正道。

 

 

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值