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.運行如下圖