16,213
社区成员
发帖
与我相关
我的任务
分享
void Curve::addData(QVector<double>& d)
{
// 添加数据至纵坐标数据集
ydata.append(d.toList());
auto len = ydata.size();
// 如果ydata数据量超过6W
if (len > history){
auto div = len - history;
// 擦除ydata前面一截div长度的数据
ydata.erase(ydata.begin(), ydata.begin() + div);
// 擦除xdata前面一截数据并添加新数据
auto maxXVal = xdata.last();
for (int i = 0; i < div; i++)
{
xdata.pop_front();
xdata << (maxXVal + i + 1);
}
// 重置横坐标刻度
parent->setAxisScale(QwtPlot::xBottom, xdata.front(), xdata.last());
}
curve->setSamples(xdata.toVector(), ydata.toVector());
}