QChart 使用appened添加数据点画图,数据量较大时画图慢、卡顿的解决方法

首先看是不是先把数据添加到线上,再来画图的,如果加一个数据画一下效率肯定慢。

然后对于QChart,一个稍微能缓解卡顿的方案就是:

series->setUseOpenGL(true);

OpenGL画图快,是牺牲了一些其他性能的,具体参考Qt文档。目前我画1.5万个点,可以说是秒出,还是挺快的。

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

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

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

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

2、性能提升有限,也就提升了10倍左右,可以画4万个点左右,点再多就要考虑使用其他方法。比如使用第三方绘图控件QCustomPlot,比QT自带的QChart强百倍,实测100万个点都不卡顿,非常流畅,QChart被完全碾压。
————————————————
版权声明:本文为CSDN博主「qq_610642」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_31073871/article/details/86352020

你可能感兴趣的:(Qt)