190 lines
5.1 KiB
C++
190 lines
5.1 KiB
C++
#ifndef TRANSPARENTDRAGGABLECOREPHYSICS_H
|
|
#define TRANSPARENTDRAGGABLECOREPHYSICS_H
|
|
|
|
#include <QObject>
|
|
#include "qmycustomplot.h"
|
|
#include <QString>
|
|
#include <QMenu>
|
|
|
|
#pragma execution_character_set("utf-8") // 强制指定执行字符集为 UTF-8
|
|
|
|
//曲线校深--线段
|
|
class TransparentDraggableCorePhysics : public QObject
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit TransparentDraggableCorePhysics(QMyCustomPlot *parentPlot, QString strUuid="", double minWidth = 5.0, QString strTitle = "");
|
|
|
|
|
|
~TransparentDraggableCorePhysics();
|
|
|
|
//设置最小宽度
|
|
void setMinWidth(double minWidth);
|
|
//设置标题
|
|
void setTitle(QString strTitle);
|
|
|
|
// 设置矩形范围
|
|
void setRange(double left_Low, double right_Hight, double lY2, bool bReplot=false);
|
|
// 获取当前范围
|
|
void getRange();
|
|
|
|
// 设置矩形颜色
|
|
void setColor(const QColor &color);
|
|
// 删除框图
|
|
void deleteRect();
|
|
|
|
void update();
|
|
|
|
// Getter & Setter
|
|
int getCpOrder() const;
|
|
void setCpOrder(int value);
|
|
|
|
double getCpDepth() const;
|
|
void setCpDepth(double value);
|
|
|
|
double getCpCorrDepth() const;
|
|
void setCpCorrDepth(double value);
|
|
|
|
double getCpCoreValue() const;
|
|
void setCpCoreValue(double value);
|
|
|
|
double getCpExampleAreaHeightCm() const;
|
|
void setCpExampleAreaHeightCm(double value);
|
|
|
|
double getCpRotationAngle() const;
|
|
void setCpRotationAngle(double value);
|
|
|
|
QString getCpDisplayName() const;
|
|
void setCpDisplayName(const QString &value);
|
|
|
|
int getCpLineWidth() const;
|
|
void setCpLineWidth(int value);
|
|
|
|
QColor getCpLineColor() const;
|
|
void setCpLineColor(QColor value);
|
|
|
|
Qt::PenStyle getCpLineStyle() const;
|
|
void setCpLineStyle(Qt::PenStyle value);
|
|
|
|
double getCpLeftScale() const;
|
|
void setCpLeftScale(double value);
|
|
|
|
double getCpRightScale() const;
|
|
void setCpRightScale(double value);
|
|
|
|
int getCpScaleType() const;
|
|
void setCpScaleType(int value);
|
|
|
|
int getCpScaleDivisionsOrCustom() const;
|
|
void setCpScaleDivisionsOrCustom(int value);
|
|
|
|
QString getCpDisplayUnit() const;
|
|
void setCpDisplayUnit(const QString &value);
|
|
|
|
QString getCpCurveName() const;
|
|
void setCpCurveName(const QString &value);
|
|
|
|
QString getCpCurveUnit() const;
|
|
void setCpCurveUnit(const QString &value);
|
|
|
|
double getCpCurveScale() const;
|
|
void setCpCurveScale(double value);
|
|
|
|
bool getCpDrawAsBar() const;
|
|
void setCpDrawAsBar(bool value);
|
|
|
|
bool getCpLeftBoundary() const;
|
|
void setCpLeftBoundary(bool value);
|
|
|
|
bool getCpSkipZeroInvalidValues() const;
|
|
void setCpSkipZeroInvalidValues(bool value);
|
|
|
|
bool getCpDrawEnvelope() const;
|
|
void setCpDrawEnvelope(bool value);
|
|
|
|
bool getCpDrawAsDot() const;
|
|
void setCpDrawAsDot(bool value);
|
|
|
|
int getCpSymbolType() const;
|
|
void setCpSymbolType(int value);
|
|
|
|
QColor getCpSymbolBorderColor() const;
|
|
void setCpSymbolBorderColor(QColor value);
|
|
|
|
int getCpSymbolSize() const;
|
|
void setCpSymbolSize(int value);
|
|
|
|
QColor getCpSymbolFillColor() const;
|
|
void setCpSymbolFillColor(QColor value);
|
|
|
|
QString getCpFieldName() const;
|
|
void setCpFieldName(const QString &value);
|
|
|
|
signals:
|
|
void rangeChanged(QCPRange newRange);
|
|
|
|
private:
|
|
double m_cp_exampleAreaHeightCm; // 例区高度(cm)
|
|
double m_cp_rotationAngle; // 旋转角度
|
|
QString m_cp_displayName; // 显示名称
|
|
int m_cp_lineWidth; // 线宽
|
|
QColor m_cp_lineColor; // 线条颜色
|
|
Qt::PenStyle m_cp_lineStyle; // 线型
|
|
double m_cp_leftScale; // 左刻度
|
|
double m_cp_rightScale; // 右刻度
|
|
int m_cp_scaleType; // 刻度类型
|
|
int m_cp_scaleDivisionsOrCustom; // 等分刻度数或自定序列
|
|
QString m_cp_displayUnit; // 显示单位
|
|
QString m_cp_curveName; // 曲线名称
|
|
QString m_cp_curveUnit; // 曲线单位
|
|
double m_cp_curveScale; // 曲线刻度
|
|
bool m_cp_drawAsBar; // 杆状
|
|
bool m_cp_leftBoundary; // 左界
|
|
bool m_cp_skipZeroInvalidValues; // 不绘零等无效值
|
|
bool m_cp_drawEnvelope; // 绘制包络线
|
|
bool m_cp_drawAsDot; // 点状
|
|
int m_cp_symbolType; // 符号类型
|
|
QColor m_cp_symbolBorderColor; // 边框颜色
|
|
int m_cp_symbolSize; // 大小
|
|
QColor m_cp_symbolFillColor; // 填充颜色
|
|
QString m_cp_fieldName; // 字段名称
|
|
// 这四个是slf文件保存读取的
|
|
int m_cp_order; // 序号
|
|
double m_cp_depth; // 深度
|
|
double m_cp_corrDepth; // 校正深度
|
|
double m_cp_coreValue; // 数值
|
|
|
|
void initRect();
|
|
void updateHandles() ;
|
|
|
|
private slots:
|
|
void onDelRect();
|
|
void onMousePress(QMouseEvent *event);
|
|
void onMouseMove(QMouseEvent *event);
|
|
void onMouseRelease(QMouseEvent *event);
|
|
|
|
public:
|
|
// 父级组件
|
|
QMyCustomPlot *mPlot;
|
|
// 当前组件
|
|
QCPItemLine *qcpItemLine;
|
|
|
|
QCPItemTracer *tracer;
|
|
|
|
|
|
QString mstrTitle="";
|
|
QString m_strUuid = "";
|
|
enum DragMode { DragNone, DragLeft, DragRight, DragRect };
|
|
DragMode mDragMode = DragNone;
|
|
//double mDragStartX = 0;
|
|
double mDragStartY = 0;
|
|
double m_left_Low = 0;
|
|
double m_right_Hight = 0;
|
|
double m_lY1 = 0;
|
|
// 添加最小宽度成员变量
|
|
double mMinWidth;
|
|
|
|
};
|
|
|
|
#endif // TRANSPARENTDRAGGABLECOREPHYSICS_H
|