VS2015+QWT实时绘制动态曲线简单例子

1.首先下载并配置好QWT相关库文件,百度上有好多例子,这里不展开讲。

2.新建一个QT项目time_line.sln(Qt Application)

3.

(1)属性->配置属性->C/C++->常规,附加包含目录:$(QTDIR)\include\QWT;

(2)属性->配置属性->链接器->输入,附加依赖项:qwtd.lib;

(3)属性->配置属性->C/C++->预处理器,预处理器定义:QWT_DLL

4.点击time_line.ui


5.加入一个QWT控件,如下图


6.返回VS2015,在time_line.h的time_line类中声明槽函数如下:

#ifndef TIME_LINE_H
#define TIME_LINE_H

#include <QtWidgets/QMainWindow>
#include "ui_time_line.h"
#include <qwt_plot_curve.h>
#include<qwt_plot_canvas.h>
class time_line : public QMainWindow
{
	Q_OBJECT

public:
	time_line(QWidget *parent = 0);
	~time_line();
	QwtPlotCurve *curve;
	//X轴  
	double time[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
	//Y轴  
	double val[10] = { 3, 5, 8, 7, 2, 0, 7, 9, 1 };
	void timerEvent(QTimerEvent *);
	QwtPlotCanvas *canvas;
private:
	Ui::time_lineClass ui;
};

#endif // TIME_LINE_H

7.在time_line.cpp中定义如下:

#include "time_line.h"

time_line::time_line(QWidget *parent)
	: QMainWindow(parent)
{
	ui.setupUi(this);
	setWindowTitle("OK");
	//实例化    
	curve = new QwtPlotCurve("Acc_X");
	//加载数据    
	curve->setSamples(time, val, 10);
	//设置x轴y轴
	ui.qwtPlot->setAxisTitle(QwtPlot::xBottom, "time");
	ui.qwtPlot->setAxisTitle(QwtPlot::yLeft, "sum");
	ui.qwtPlot->setAxisScale(QwtPlot::yLeft, 0, 10, 2);
	ui.qwtPlot->setAxisScale(QwtPlot::xBottom, 0, 10, 2);
	//加到plot,plot由IDE创建    
	curve->attach(ui.qwtPlot);
	this->startTimer(100);
}

time_line::~time_line()
{

}

void time_line::timerEvent(QTimerEvent *) {
	for (int i = 0; i < 9; i++) {
		val[i] = val[i + 1];
	}
	//最后一位为新数据(这里为随机数模拟)    
	val[9] = qrand() % 10;
	//重新加载数据    
	curve->setSamples(time, val, 10);
	//QwtPlot重绘,重要,没有这句不起作用    
	ui.qwtPlot->replot();
}

8.运行如下图




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值