天天看點

QChart顯示的點多了之後會卡頓的問題,解決方案

------------------------後記--------------------

試用了一下第三方繪圖控件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才是正道。

繼續閱讀