#ifndef TRANSPARENTGROUPRESUL_H #define TRANSPARENTGROUPRESUL_H #include #include "qmycustomplot.h" #include #include #include "geometryutils.h" #include #pragma execution_character_set("utf-8") // 强制指定执行字符集为 UTF-8 class TransparentDraggableResult; class TransparentGroupResult : public QObject { Q_OBJECT public: explicit TransparentGroupResult(QMyCustomPlot *parentPlot, TransparentGroupResult *upDraggableResult=nullptr, QString strUuid="", double minWidth = 1.0, QString strTitle = ""); ~TransparentGroupResult(); void addResultToPlot(double left_Low, double right_Hight, QString myResult, QString &strUuid); //设置最小宽度 void setMinWidth(double minWidth); //设置标题 void setTitle(QString strTitle); //设置解释结论 void setResult(QString filePath); //void drawResult(double left_Low, double right_Hight, double lY1, double lY2); // 设置矩形范围 void setRange(double left_Low, double right_Hight); void setDragRange(double left_Low, double right_Hight); // 获取当前范围 QCPRange getRange(); // 删除框图 void deleteRect(); void setSelectRect(bool bselect); int getCursor(); signals: void rangeChanged(QCPRange newRange); private: void initRect(); void updateHandles() ; TransparentDraggableResult* getSelectItemResult(QPoint pt); private slots: void onDelRect(); void onMousePress(QMouseEvent *event); void onMouseMove(QMouseEvent *event); void onMouseRelease(QMouseEvent *event); // void onMouseMove_in(QMouseEvent *event); void onMouseRelease_in(QMouseEvent *event); double getMyLower(); double getMyUpper(); private: QMyCustomPlot *mPlot; QCPItemRect *mRect; QCPItemRect *mLeftHandle; QCPItemRect *mRightHandle; QCPItemRect *mDragRect; QCPItemStraightLine* mDragLine = NULL; TransparentDraggableResult* m_pDragResult = NULL; QCPItemText *mItemTitle; QString mstrTitle=""; QString m_strUuid = ""; QString m_Result; enum DragMode { DragNone, DragLeft, DragRight, DragItem, DragRect }; DragMode mDragMode = DragNone; //double mDragStartX = 0; double mDragStartY = 0; QCPRange mDragStartRange; // 添加最小宽度成员变量 double mMinWidth; QVector m_vecResult; QMap m_mapDraggable_Result; bool m_bArrow = false; bool m_bMoveRect = false; }; #endif // TRANSPARENTGROUPRESUL_H