Files
qwt/examples/oscilloscope/Plot.h
2023-10-31 09:22:42 +01:00

52 lines
1.2 KiB
C++

/*****************************************************************************
* Qwt Examples - Copyright (C) 2002 Uwe Rathmann
* This file may be used under the terms of the 3-clause BSD License
*****************************************************************************/
#pragma once
#include <QwtPlot>
#include <QwtInterval>
#include <QElapsedTimer>
class QwtPlotCurve;
class QwtPlotMarker;
class QwtPlotDirectPainter;
class Plot : public QwtPlot
{
Q_OBJECT
public:
Plot( QWidget* = NULL );
virtual ~Plot();
void start();
virtual void replot() QWT_OVERRIDE;
virtual bool eventFilter( QObject*, QEvent* ) QWT_OVERRIDE;
public Q_SLOTS:
void setIntervalLength( double );
protected:
virtual void showEvent( QShowEvent* ) QWT_OVERRIDE;
virtual void resizeEvent( QResizeEvent* ) QWT_OVERRIDE;
virtual void timerEvent( QTimerEvent* ) QWT_OVERRIDE;
private:
void updateCurve();
void incrementInterval();
QwtPlotMarker* m_origin;
QwtPlotCurve* m_curve;
int m_paintedPoints;
QwtPlotDirectPainter* m_directPainter;
QwtInterval m_interval;
int m_timerId;
QElapsedTimer m_elapsedTimer;
};