#include "qwt_test.h"
#include "ui_qwt_test.h"
#include <qwt_plot.h>
#include <qwt_plot_curve.h>
#include <time.h>
#include "timescaledraw.h"
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
QTime m_baseTime =QTime::currentTime();
//QDateTime::currentDateTime();
int i;
//bool ok;
//QTime TimeArr[6];
//double tim[20] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,19,20,22,24};
//double tim[6] = {0,20,40,60,80,100};
//double val[12] = {3, 5, 8, 7, 2, 0, 7, 9, 1};
//double val[6] = {};
//double Data[6];
float Qri = 0.0;
float Des = 20.0;
Qwt_test::Qwt_test(QWidget *parent) :
QWidget(parent),
ui(new Ui::Qwt_test)
{
ui->setupUi(this);
//QwtPlotCurve * curve;
tim = 0.0;
//设置坐标轴的名称
//ui->qwtPlot.setAxisTitle(QwtPlot::xBottom, "x->");
//ui->qwtPlot->setAxisTitle(QwtPlot::yLeft, "y->");
//ui->qwtPlot->setAxisTitle(20,"x->");
time_t timep;
time (&timep);
QString DataString = asctime(gmtime(&timep));
QString DataString2 = ctime(&timep);
ui->lineEdit->setText(DataString);
ui->lineEdit_2->setText(DataString2);
int StringSize;
StringSize = DataString2.size();
ui->lineEdit_8->setText(QString::number(StringSize));
QString s1 = DataString2.left(3);
ui->lineEdit_3->setText(s1);
QString s2 = DataString2.mid(4,3);
ui->lineEdit_4->setText(s2);
QString s3 = DataString2.mid(7,3);
ui->lineEdit_5->setText(s3);
QString s4 = DataString2.mid(10,10);
ui->lineEdit_6->setText(s4);
QString s5 = DataString2.mid(20,4);
ui->lineEdit_7->setText(s5);
// for(int i = 0;i < 20;i++)
// {
// double data = s4.toDouble(&ok);
// if(ok)
// {
// tim[i] = data;
// }
// }
ui->qwtPlot->setAxisTitle(QwtPlot::xBottom, " System Uptime [h:m:s]");
curve = new QwtPlotCurve("Acc_X");
QPen pen(Qt::red,3);
curve->setPen(pen);
//-Wl,-rpath,/usr/local/qwt-5.2.1/lib
//ui->qwtPlot->setAxisScaleDraw(QwtPlot::xBottom, new TimeScaleDraw());
//qwtplot->setAxisScaleDraw(QwtPlot::xBottom, new TimeScaleDraw(0, 20));
//qwtplot->setAxisScaleDraw(QwtPlot::xBottom, new TimeScaleDraw());
ui->qwtPlot->setAxisScaleDraw(QwtPlot::xBottom,new TimeScaleDraw(m_baseTime));
ui->qwtPlot->setAxisScale(QwtPlot::yLeft,0.0,10.0);
ui->qwtPlot->setAxisScale(QwtPlot::xBottom,Qri,Des);
// ui->qwtPlot->setAxisScaleDraw( QwtPlot::xBottom,
// new TimeScaleDraw( cpuStat.upTime() ) );
//curve->setRawData(tim, val,i);
curve->attach(ui->qwtPlot);
//ui->qwtPlot->replot();
this->startTimer(1000);
//printf(“%s”,asctime(gmtime(&timep)));
}
Qwt_test::~Qwt_test()
{
delete ui;
}
void Qwt_test::timerEvent( QTimerEvent * ) {
// if(i<20)
// {
// val[i]=qrand()%10;
// curve->setRawData(tim, val,i);
// i++;
// }
// else
// {
// for (int i = 0; i < 20; i++)
// {
// val[i] = val[i+1];
// }
// val[19] = qrand()%10;
// curve->setData(tim, val,20);
// }
//m_baseTime =QTime::currentTime();
if(i<20)
{
//TimeArr[i] = QTime::currentTime();
//double data[i] = (new TimeScaleDraw(TimeArr[i]));
//double
//val[i]=qrand()%10;
//ui->qwtPlot->setAxisScaleDraw(QwtPlot::xBottom,new TimeScaleDraw(TimeArr[i]));
//curve->setRawData(tim, val,i+1);
yData.append(qrand()%10);
xData.append(tim);
tim += 1;//per one seconds one data
//m_baseTime =QTime::currentTime();
//ui->qwtPlot->setAxisScaleDraw(QwtPlot::xBottom,new TimeScaleDraw(m_baseTime));
curve->setData(xData,yData);
i++;
}
else
{
// for (int i = 0; i < 9; i++)
// {
// val[i] = val[i+1];
// TimeArr[i]=TimeArr[i+1];
// }
// val[5] = qrand()%10;
// TimeArr[5]=QTime::currentTime();
// tim[6] = tim[6]+5;
// //TimeArr[i] = QTime::currentTime();
// //ui->qwtPlot->setAxisScale(QwtPlot::xBottom,new TimeScaleDraw(TimeArr[0]),new TimeScaleDraw(TimeArr[5]));
// //ui->qwtPlot->setAxisScaleDraw(QwtPlot::xBottom,new TimeScaleDraw(TimeArr[i]));
// //curve->SetAxisScaleDraw(TimeArr);
// curve->setData(tim, val,6);
// //curve->setData();
m_baseTime =QTime::currentTime();
ui->qwtPlot->setAxisScaleDraw(QwtPlot::xBottom,new TimeScaleDraw(m_baseTime));
yData.remove(0);
yData.append(qrand()%10);
curve->setData(xData,yData);
}
//所有数据前移移位,首位被覆盖
//最后一位为新数据(这里为随机数模拟)
//重新加载数据
//curve->setSamples(time, val, 10);
QPen pen(Qt::red,3);
curve->setPen(pen);
//QwtPlot重绘,重要,没有这句不起作用
ui->qwtPlot->replot();
}