我正在构建一个使用 QtCharts 库绘制测量数据的应用程序。应该提到的一些重要的事情是:
我正在处理时间序列。
测量数据是离线获取的,表示已经获取。我的程序只是从文件中读取它并显示它。
我正在使用一个 for 循环,它将数据点作为固定大小的块(比如 10000)并将它们添加到分散系列中。这样,数据被“重放”,用户可以在许多中间时间点看到测量数据的进展,而不仅仅是在所有数据点都被绘制之后。
我正在处理大量数据点,大约数百万。
在循环的每次迭代中,都会创建一个新的 QScatterSeries,附加数据点,将散点系列添加到图表中,然后重新绘制图表视图。一开始它很快,但随着时间的推移,要绘制的点数增加,绘制过程变得越来越慢。我知道我可以重新实现图表视图类的paintEvent 以使其仅重绘自身的一部分。我认为我可以通过仅更新具有新数据点的部分来使其更快。我将只计算添加新数据点的区域的坐标并使用paintEvent。但是我该怎么做呢?我尝试使用 QPainter 的 setClipRect() 方法,但做不到。提前致谢。