实现的效果图:
部分功能源码:
void MainWindow::updateData()
{
static int i;
i++;
if(ui->customPlot->xAxis->range().upper >=1000)
{
ui->customPlot->xAxis->setRange(ui->customPlot->xAxis->range().upper+1000, Qt::AlignRight);
}
ui->customPlot->graph(0)->addData(ui->customPlot->graph(0)->dataCount(), qSin(ui->customPlot->graph(0)->dataCount()/50.0)+qSin(ui->customPlot->graph(0)->dataCount()/50.0/0.3843)*0.25);
// QVector<QPointF> oldData = series->pointsVector();
// QVector<QPointF> data;
ui->customPlot->replot();
}
void MainWindow::timerSlot()
{
if (QObject::sender() == timer)
{
updateData();
}
}
void MainWindow::initSlot()
{
connect(m_serialPort,SIGNAL(readyRead()),this,SLOT(receiveInfo()));
connect(timer, SIGNAL(timeout()), this, SLOT(timerSlot()));
}