#ifndef DRAWWAVEVIEW_H #define DRAWWAVEVIEW_H #include #include //水平线条数 #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