qcustomplot绘制动态曲线程序
时间: 2023-10-09 11:17:12 浏览: 160
画动态曲线的程序
4星 · 用户满意度95%
qcustomplot是一个基于Qt的绘图库,用于快速绘制各种类型的图表,包括动态曲线图。下面是一个简单的示例程序,演示如何使用qcustomplot绘制动态曲线图。
```cpp
#include <QApplication>
#include <QTimer>
#include "qcustomplot.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// 创建QCustomPlot对象
QCustomPlot plot;
plot.setWindowTitle("Dynamic Curve");
// 创建曲线对象
QCPGraph *curve = plot.addGraph();
curve->setPen(QPen(Qt::red));
curve->setLineStyle(QCPGraph::lsLine);
// 设置坐标轴范围和标签
plot.xAxis->setLabel("Time");
plot.yAxis->setLabel("Value");
plot.xAxis->setRange(0, 10);
plot.yAxis->setRange(-1, 1);
// 创建定时器,每100毫秒更新一次曲线
QTimer timer;
timer.start(100);
QObject::connect(&timer, &QTimer::timeout, [&]() {
static double t = 0;
static double y = 0;
t += 0.1;
y = sin(t);
curve->addData(t, y);
plot.xAxis->setRange(t, 10, Qt::AlignRight);
plot.replot();
});
// 显示窗口
plot.show();
return a.exec();
}
```
在这个示例程序中,我们创建了一个QCustomPlot对象,并添加了一个曲线对象。然后设置了坐标轴的范围和标签。接着创建了一个定时器,用于每100毫秒更新一次曲线。在定时器的回调函数中,我们使用sin函数生成一个随时间变化的y值,并将其添加到曲线对象中。然后调整x轴的范围,使曲线能够动态显示。最后调用plot.replot()函数重新绘制曲线。
运行程序后,您应该可以看到一个动态曲线图,它会不断地更新,显示sin函数在时间轴上的变化。
阅读全文