123 lines
3.1 KiB
C++
123 lines
3.1 KiB
C++
#ifndef TRANSPARENTGROUPRESUL_H
|
|
#define TRANSPARENTGROUPRESUL_H
|
|
|
|
#include <QObject>
|
|
#include "qmycustomplot.h"
|
|
#include <QString>
|
|
#include <QMenu>
|
|
#include "geometryutils.h"
|
|
#include <QSvgRenderer>
|
|
|
|
#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();
|
|
|
|
enum DragMode { DragNone, DragLeft, DragRight, DragItem, DragRect };
|
|
|
|
void addResultToPlot(double left_Low, double right_Hight, QString myResult, QString &strUuid);
|
|
|
|
QString getIconName(const QMap<QString, QString>& zoneOrder, const QString& result_str, int nidx, double dMDepth);
|
|
|
|
void addAllResultToPlot(LAYER_DATA* pResult);
|
|
|
|
//设置最小宽度
|
|
void setMinWidth(double minWidth);
|
|
//设置标题
|
|
void setTitle(QString strTitle);
|
|
QString getTitle();
|
|
|
|
//设置解释结论
|
|
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 setGroupConclusionProportion(int nCopr);
|
|
// 设置显示位置
|
|
void setGroupShowPos(int nSPos);
|
|
// 设置层号显示
|
|
void setFloorVisible(bool bs);
|
|
// 设置层号字体
|
|
void setFloorFont(QFont f);
|
|
// 设置层号旋转
|
|
void setFloorRot(double dr);
|
|
|
|
//设置顶深, 底深
|
|
void setDragRect(int dMode, double dragVal);
|
|
|
|
// 删除框图
|
|
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;
|
|
|
|
DragMode mDragMode = DragNone;
|
|
//double mDragStartX = 0;
|
|
double mDragStartY = 0;
|
|
QCPRange mDragStartRange;
|
|
|
|
// 添加最小宽度成员变量
|
|
double mMinWidth;
|
|
|
|
// 设置结论占比%
|
|
int m_nConclusionProportion = 50;
|
|
// 显示位置cm
|
|
int m_nShowPos = 0;
|
|
|
|
QVector<QString> m_vecResult;
|
|
QMap<QString, QObject*> m_mapDraggable_Result;
|
|
bool m_bArrow = false;
|
|
bool m_bMoveRect = false;
|
|
};
|
|
|
|
#endif // TRANSPARENTGROUPRESUL_H
|