qcustomplot绘制实时sin波形图示例代码
时间: 2023-11-05 20:04:33 浏览: 81
下面是使用qcustomplot库绘制实时sin波形图的示例代码:
```cpp
#include <QApplication>
#include <QTimer>
#include "qcustomplot.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// 创建QCustomPlot对象
QCustomPlot *customPlot = new QCustomPlot();
customPlot->addGraph(); // 添加一条曲线
// 设置坐标轴范围
customPlot->xAxis->setRange(0, 2 * M_PI, Qt::AlignRight);
customPlot->yAxis->setRange(-1, 1, Qt::AlignCenter);
// 设置坐标轴标签
customPlot->xAxis->setLabel("X");
customPlot->yAxis->setLabel("Y");
// 创建一个计时器
QTimer dataTimer;
dataTimer.setInterval(10); // 每10毫秒更新一次数据
// 连接计时器的timeout()信号到槽函数
QObject::connect(&dataTimer, &QTimer::timeout, [=]()
{
static double time = 0;
time += 0.1;
// 计算sin函数值
double value = qSin(time);
// 添加新数据点
customPlot->graph(0)->addData(time, value);
// 移动坐标轴
customPlot->xAxis->setRange(time, 2 * M_PI + time, Qt::AlignRight);
// 重新绘制图形
customPlot->replot();
});
// 启动计时器
dataTimer.start();
// 显示窗口
customPlot->show();
return a.exec();
}
```
以上代码中,我们使用QCustomPlot库创建了一个带有坐标轴的窗口,并在其中添加了一条曲线。使用QTimer计时器每隔10毫秒更新一次数据,并将新的数据点添加到曲线中,最后重新绘制曲线。
阅读全文