You can not select more than 25 topics
Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- #pragma once
- #include <QTimer>
-
- #pragma execution_character_set("utf-8")
-
- #include <QMutex>
- #include <QMutexLocker>
- #include <QRect>
- #include <QString>
- #include <QToolTip>
- #include <QWidget>
- #include "qcustomplot.h"
- #include "ui_CurveWidget.h"
- typedef struct {
- double axisMinX;
- double axisMaxX;
- double axisMinY;
- double axisMaxY;
- } AxisRange;
-
- struct CurveInfo {
- QVector<double> m_vecAxisX; // X轴数据
- QVector<double> m_vecAxisY; // Y轴数据
- QString m_strTitle; // 曲线主题
- QColor m_curveColor; // 曲线颜色
- int m_curveCount; // 曲线编号
- unsigned short m_usCurveModel; // 曲线类型
- QCPGraph* m_pGPGraph = nullptr; // 曲线
- double maxX = 0.0;
- double minX = 0.0;
- double maxY = 0.0;
- double minY = 0.0;
- bool m_bIsInited = false; // 是否初始化
- // bool m_bIsZeroX=false; //实时解析时X轴是否从零开始 false:固定间距显示;true:从零开始显示
- };
-
- class CurveWidget : public QWidget
- {
- Q_OBJECT
- public:
- CurveWidget(QWidget* parent = Q_NULLPTR);
- ~CurveWidget();
- void setParam(CurveInfo*& curveInfo);
- CurveInfo* getCurveInfo()
- {
- return m_pCurveInfo;
- }
- QCustomPlot* getCustomplot()
- {
- return ui.wgt_curvePlot;
- }
- void startRefresh(bool status);
- void clearWidget();
- bool m_bRefTime; // 基准时间设置
- private:
- Ui::CurveWidgetClass ui;
- QString strTitle;
- unsigned short m_usModel;
- int m_count;
- int m_iWgtWidth;
- int m_iWgtHeight;
- AxisRange m_axisRange;
- QCPPlotTitle* m_pPlotTitle;
- QRubberBand* m_pRubberBand;
- QPoint m_originPoint;
- QCPGraph* m_pCPGraph;
- CurveInfo* m_pCurveInfo;
- QTimer m_timer;
- QMutex m_mutex;
- double m_dYMax;
- double m_dYMin;
- unsigned int m_uiParseStatus; // 0:无任务解析,1:离线解析,2:在线解析
- private:
- void initCurvePlot();
-
- void keyPressEvent(QKeyEvent* event) override;
- void keyReleaseEvent(QKeyEvent* event) override;
-
- void resizeEvent(QResizeEvent* event) override;
- void resizeSubControl(int width, int height);
- signals:
- void hideCurveWidget(int count);
- private slots:
- void mousePressEvent(QMouseEvent* event);
- void mouseMoveEvent(QMouseEvent* event);
- void mouseReleaseEvent(QMouseEvent* event);
-
- // void changeCoord(); //坐标切换
- void zoomCoordY(); // Y轴缩放
- void resetCoord(); // 坐标重置
- void hideWindow(); // 隐藏窗口
- void refreshCurve();
- public slots:
- void parseFinished();
- void setParseStatus(unsigned int status);
- };
|