logplus/DataMgr/src/DrawWaveView.h
2026-01-29 16:57:06 +08:00

71 lines
1.4 KiB
C++

#ifndef DRAWWAVEVIEW_H
#define DRAWWAVEVIEW_H
#include <QWidget>
#include <QPaintEvent>
//水平线条数
#define D_HOR_LIENS 4//5
//垂直线条数
#define D_VER_LINES 8//10
//视图边距
#define D_VIEW_MARGIN_LEFT 80//左、下边界
#define D_VIEW_MARGIN_BOTTOM 30//左、下边界
#define D_VIEW_MARGIN_RIGHT 40//右、上边界
#define D_VIEW_MARGIN_TOP 25//上边界
class DrawWaveView : public QWidget
{
Q_OBJECT
public:
explicit DrawWaveView(QWidget *parent = nullptr);
//QRect widgetRec;
float m_Ymax,m_Ymin;
float m_Xmin,m_Xmax;
void initView();
void setValues(float *values);
void setCount(int count);
void setTime(int time);
void setXGrid(int xGrid);//X轴网格数
void setYGrid(int yGrid);//Y轴网格数
signals:
public slots:
// QWidget interface
protected:
virtual void paintEvent(QPaintEvent *evt);
private:
//绘制坐标
void drawCoord(QPainter *painter);
//绘制水平网格
void drawHorlines(QPainter *painter);
//绘制垂直网格
void drawVerLines(QPainter *painter);
//波列数据转换为图像坐标
QPointF coordWavePoint(int ix,float value);
//绘制波列数据点
void drawDataPoints(QPainter *painter);
private:
float *m_values;
int m_count;
int m_time;
int m_xGrid,m_yGrid;
bool isInit;
float m_xGridValue;
float m_yGridValue;
float m_hGridWidth;
float m_vGridHeight;
float m_width;
float m_height;
float m_pixXValue;
float m_pixYValue;
};
#endif // DRAWWAVEVIEW_H