问题:
做一个显示数据采集曲线的程序,每秒更新QChart的数据,只显示两条曲线中的一条。
描述:
程序先创建了数据曲线数组,然后载入QChart,代码如下:
QLineSeries m_series[2];
m_chart->addSeries(&m_series[0]);
m_chart->addSeries(&m_series[1]);
然后数据采集程序每秒发送一次信号,界面的槽函数接收数据更新曲线数组。测试结果多数情况下只能显示第一组数据m_series[0],第二组数据m_series[1]偶尔显示。
程序中QLineSeries载入QChart前没有曲线数据。在数据采集过程中才向QLineSeries存入数据。
解决方法:
在CSDN上查找解决办法,尝试了几个方法都没有解决,最后通过以下方法解决:
原来的代码中只对第一组数据设置了XY坐标轴,代码如下:
m_chart->setAxisX(axisX, &m_series[0]);
m_chart->setAxisY(axisY, &m_series[0]);
这是导致只显示第一组数据的原因,增加对第二组数据设置XY坐标轴解决问题,代码如下:
m_chart->setAxisX(axisX, &m_series[0]);
m_chart->setAxisY(axisY, &m_series[0]);
m_chart->setAxisX(axisX, &m_series[1]);
m_chart->setAxisY(axisY, &m_series[1]);