logplus/logPlus/TransparentDraggableCorePhysics.h

168 lines
4.5 KiB
C
Raw Normal View History

2026-03-25 09:13:55 +08:00
#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);
// 设置矩形范围
2026-03-26 11:38:23 +08:00
void setRange(double left_Low, double right_Hight, double lY2, bool bReplot=false);
2026-03-25 09:13:55 +08:00
// 获取当前范围
2026-03-26 09:17:07 +08:00
void getRange();
2026-03-25 09:13:55 +08:00
// 设置矩形颜色
void setColor(const QColor &color);
// 删除框图
void deleteRect();
2026-03-26 09:17:07 +08:00
void update();
2026-03-25 10:43:36 +08:00
2026-03-26 09:17:07 +08:00
// Getter & Setter
int getCpOrder() const;
void setCpOrder(int value);
2026-03-25 10:43:36 +08:00
2026-03-26 09:17:07 +08:00
double getCpDepth() const;
void setCpDepth(double value);
2026-03-25 10:43:36 +08:00
2026-03-26 11:38:23 +08:00
double getCpCorrDepth() const;
void setCpCorrDepth(double value);
2026-03-25 10:43:36 +08:00
2026-03-26 09:17:07 +08:00
double getCpCoreValue() const;
void setCpCoreValue(double value);
2026-03-25 10:43:36 +08:00
2026-03-26 09:17:07 +08:00
int getCpLineWidth() const;
void setCpLineWidth(int value);
2026-03-25 10:43:36 +08:00
2026-03-26 09:17:07 +08:00
QColor getCpLineColor() const;
void setCpLineColor(QColor value);
2026-03-25 10:43:36 +08:00
2026-03-26 09:17:07 +08:00
Qt::PenStyle getCpLineStyle() const;
void setCpLineStyle(Qt::PenStyle value);
2026-03-25 10:43:36 +08:00
2026-03-30 15:56:03 +08:00
double getCpLeftScale() const;
void setCpLeftScale(double value);
2026-03-25 10:43:36 +08:00
2026-03-30 15:56:03 +08:00
double getCpRightScale() const;
void setCpRightScale(double value);
2026-03-25 10:43:36 +08:00
2026-03-30 15:56:03 +08:00
int getCpScaleType() const;
void setCpScaleType(int value);
2026-03-25 10:43:36 +08:00
2026-03-26 09:17:07 +08:00
QString getCpDisplayUnit() const;
void setCpDisplayUnit(const QString &value);
2026-03-25 10:43:36 +08:00
2026-03-26 09:17:07 +08:00
QString getCpCurveName() const;
void setCpCurveName(const QString &value);
2026-03-25 10:43:36 +08:00
2026-03-26 09:17:07 +08:00
QString getCpCurveUnit() const;
void setCpCurveUnit(const QString &value);
2026-03-25 10:43:36 +08:00
2026-03-26 17:38:29 +08:00
QFont getCpCurveScale() const;
void setCpCurveScale(QFont value);
2026-03-25 10:43:36 +08:00
2026-03-26 09:17:07 +08:00
bool getCpDrawAsBar() const;
void setCpDrawAsBar(bool value);
2026-03-25 10:43:36 +08:00
2026-03-26 09:17:07 +08:00
bool getCpLeftBoundary() const;
void setCpLeftBoundary(bool value);
2026-03-25 10:43:36 +08:00
2026-03-26 09:17:07 +08:00
bool getCpSkipZeroInvalidValues() const;
void setCpSkipZeroInvalidValues(bool value);
2026-03-25 10:43:36 +08:00
2026-03-26 09:17:07 +08:00
bool getCpDrawEnvelope() const;
void setCpDrawEnvelope(bool value);
2026-03-25 10:43:36 +08:00
2026-03-26 09:17:07 +08:00
bool getCpDrawAsDot() const;
void setCpDrawAsDot(bool value);
2026-03-25 10:43:36 +08:00
2026-03-26 09:17:07 +08:00
int getCpSymbolType() const;
void setCpSymbolType(int value);
2026-03-25 10:43:36 +08:00
2026-03-26 09:17:07 +08:00
QColor getCpSymbolBorderColor() const;
void setCpSymbolBorderColor(QColor value);
2026-03-25 10:43:36 +08:00
2026-03-26 09:17:07 +08:00
int getCpSymbolSize() const;
void setCpSymbolSize(int value);
2026-03-25 10:43:36 +08:00
2026-03-26 09:17:07 +08:00
QColor getCpSymbolFillColor() const;
void setCpSymbolFillColor(QColor value);
2026-03-25 09:13:55 +08:00
signals:
void rangeChanged(QCPRange newRange);
private:
2026-03-25 10:43:36 +08:00
int m_cp_lineWidth; // 线宽
2026-03-26 09:17:07 +08:00
QColor m_cp_lineColor; // 线条颜色
Qt::PenStyle m_cp_lineStyle; // 线型
2026-03-30 15:56:03 +08:00
double m_cp_leftScale = 0; // 左刻度
double m_cp_rightScale = 100; // 右刻度
int m_cp_scaleType = 0; // 刻度类型
2026-03-25 10:43:36 +08:00
QString m_cp_displayUnit; // 显示单位
QString m_cp_curveName; // 曲线名称
QString m_cp_curveUnit; // 曲线单位
2026-03-26 17:38:29 +08:00
QFont m_cp_curveScale; // 曲线刻度
2026-03-25 10:43:36 +08:00
bool m_cp_drawAsBar; // 杆状
2026-03-26 09:17:07 +08:00
bool m_cp_leftBoundary; // 左界
2026-03-25 10:43:36 +08:00
bool m_cp_skipZeroInvalidValues; // 不绘零等无效值
bool m_cp_drawEnvelope; // 绘制包络线
bool m_cp_drawAsDot; // 点状
int m_cp_symbolType; // 符号类型
2026-03-26 09:17:07 +08:00
QColor m_cp_symbolBorderColor; // 边框颜色
2026-03-25 10:43:36 +08:00
int m_cp_symbolSize; // 大小
2026-03-26 09:17:07 +08:00
QColor m_cp_symbolFillColor; // 填充颜色
2026-03-26 11:38:23 +08:00
// 这四个是slf文件保存读取的
int m_cp_order; // 序号
double m_cp_depth; // 深度
double m_cp_corrDepth; // 校正深度
double m_cp_coreValue; // 数值
2026-03-25 10:43:36 +08:00
2026-03-25 09:13:55 +08:00
void initRect();
void updateHandles() ;
private slots:
void onDelRect();
void onMousePress(QMouseEvent *event);
void onMouseMove(QMouseEvent *event);
void onMouseRelease(QMouseEvent *event);
public:
2026-03-25 10:43:36 +08:00
// 父级组件
2026-03-25 09:13:55 +08:00
QMyCustomPlot *mPlot;
2026-03-25 10:43:36 +08:00
// 当前组件
2026-03-25 09:13:55 +08:00
QCPItemLine *qcpItemLine;
2026-03-25 10:43:36 +08:00
2026-03-26 09:17:07 +08:00
QCPItemTracer *tracer;
2026-03-25 10:43:36 +08:00
2026-03-25 09:13:55 +08:00
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