用qwt绘制按秒采集数据波形图
来源:互联网 发布:淘宝免费开店 编辑:程序博客网 时间:2024/05/08 18:42
源码:
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include <QWidget>
#include <qwt_plot_zoomer.h>
#include <QTimer>
#include <qwt_plot_curve.h>
#include <QDateTime>
#include <qwt_scale_draw.h>
#include <qwt_legend.h>
#include <qwt_scale_widget.h>
namespace Ui {
class myWidget;
}
class myWidget : public QWidget
{
Q_OBJECT
public:
explicit myWidget(QWidget *parent = 0);
~myWidget();
private:
Ui::myWidget *ui;
QwtPlotCurve *p_adplot;
QTimer *PlotTimer;
QPolygonF points;
int xMaxScale;
public slots:
void plotCurve();
};
#endif // MYWIDGET_H
头文件中主要设置变量名以及自定义一个槽函数很简单的
.cpp文件
#include "mywidget.h"#include "ui_mywidget.h"class TimeScaleDraw: public QwtScaleDraw{public:
TimeScaleDraw(){
}
virtual QwtText label( double v ) const{
QDateTime dt;dt.setTime_t((int)v);return dt.toString("yyyy-MM-dd\n hh:mm:ss");}
private:
QDateTime baseTime;};myWidget::myWidget(QWidget *parent) :QWidget(parent),ui(new Ui::myWidget){ui->setupUi(this);ui->qwtPlot->insertLegend(new QwtLegend, QwtPlot::RightLegend);ui->qwtPlot->setAxisTitle(QwtPlot::xBottom, " System Uptime[yyyy-MM-dd\n hh:mm:ss]");ui->qwtPlot->setAxisScaleDraw(QwtPlot::xBottom,new TimeScaleDraw());ui->qwtPlot->setAxisScale(QwtPlot::xBottom, QDateTime::currentDateTime().toTime_t()-5, xMaxScale = QDateTime::currentDateTime().toTime_t());ui->qwtPlot->setAxisLabelAlignment(QwtPlot::xBottom, Qt::AlignHCenter | Qt::AlignBottom);ui->qwtPlot->canvas()->setFrameStyle( QFrame::NoFrame | QFrame::Plain );ui->qwtPlot->setCanvasBackground(Qt::blue);ui->qwtPlot->setTitle ("按秒采集数据波形图");QwtScaleWidget *scaleWidget = ui->qwtPlot->axisWidget(QwtPlot::xBottom);//设置坐标边距const int fmh = QFontMetrics(scaleWidget->font()).height();scaleWidget->setMinBorderDist(0, fmh / 2);ui->qwtPlot->setAxisTitle(QwtPlot::yLeft, "V");ui->qwtPlot->setAxisScale(QwtPlot::yLeft, 0, 3);p_adplot = new QwtPlotCurve("AD模拟采集");QColor c = Qt::red;p_adplot->setPen(c);p_adplot->attach(ui->qwtPlot);QwtPlotZoomer* zoomer = new QwtPlotZoomer( ui->qwtPlot->canvas() );zoomer->setRubberBandPen( QColor( Qt::black ) );zoomer->setTrackerPen( QColor( Qt::black ) );zoomer->setMousePattern(QwtEventPattern::MouseSelect2,Qt::RightButton, Qt::ControlModifier );zoomer->setMousePattern(QwtEventPattern::MouseSelect3,Qt::RightButton );//qDebug()<<QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss")+"fir";PlotTimer = new QTimer();connect(PlotTimer, SIGNAL(timeout()),this, SLOT(plotCurve()));PlotTimer->start(1000);}void myWidget::plotCurve(){ui->qwtPlot->setAxisScale(QwtPlot::xBottom, QDateTime::currentDateTime().toTime_t()-5, xMaxScale = QDateTime::currentDateTime().toTime_t());//qDebug()<<QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss")+"sec";points<<QPointF(QDateTime::currentDateTime().toTime_t(),rand()%3);p_adplot->setSamples(points);p_adplot->attach(ui->qwtPlot);ui->qwtPlot->replot();}myWidget::~myWidget(){delete ui;}
0 0
- 用qwt绘制按秒采集数据波形图
- 用qwt绘制AD波形
- 用qwt绘制AD波形
- Qt下利用QWT绘制波形图
- 用qwt绘制AD波形(转载)
- [Android]自定义绘制一个简易的音频条形图,附上对MP3音频波形数据的采集与展现
- QWT绘制巴图
- 绘制wav波形图
- 2. 绘制波形图
- java绘制波形图
- c#串口温度数据的波形采集
- c#串口温度数据的波形采集
- java绘制音频波形图
- android音频波形图绘制
- Qt5绘制wav波形图
- ios 绘制wav波形图
- android音频波形图绘制
- 波形图绘制(Quartz)
- Ubuntu下忘记MySQL密码重设方法
- 把apk烧近系统里面,以及删除系统级的apk
- Energy TIme Series Forecating Based on Pattern Sequence Similarity
- 剑指offer面试题(4)—替换空格
- 远程连接oracle数据库
- 用qwt绘制按秒采集数据波形图
- 完成端口模型服务器客户端基础WSACompletionPortServer
- Maven简介(三)——profile介绍
- 小公司技术管理的点滴--收获
- 发一个新版的libcurl 7.37 + zlib 1.2.8 + openssl 1.0.1h
- ios UIWebView 播放优酷土豆视频
- CheckBoxList控件用法实现投票实例
- 软件测试人员的基本素质
- weblogic发布应用包,路径乱码错误&linux修改LANG环境变量(解决中文乱码问题)