logplus/logPlus/TransparentDraggableJiegutext.h

78 lines
1.8 KiB
C++

#ifndef TRANSPARENTDRAGGABLEJIEGUTEXT_H
#define TRANSPARENTDRAGGABLEJIEGUTEXT_H
#include <QObject>
#include "qmycustomplot.h"
#include <QString>
#include <QMenu>
#pragma execution_character_set("utf-8") // 强制指定执行字符集为 UTF-8
#define MAX_NUM 4
//气测/FMT/射孔/文本
class TransparentDraggableJiegutext : public QObject
{
Q_OBJECT
public:
explicit TransparentDraggableJiegutext(QMyCustomPlot *parentPlot, QString strUuid="", double minWidth = 1.0, QStringList strTitle = {});
~TransparentDraggableJiegutext();
//设置最小宽度
void setMinWidth(double minWidth);
//设置标题
void setTitle(QStringList strTitle);
// 设置矩形范围
void setRange(double left_Low, double right_Hight);
// 获取当前范围
QCPRange getRange();
// 设置矩形颜色
void setColor(const QColor &color);
// 删除框图
void deleteRect();
signals:
void rangeChanged(QCPRange newRange);
private:
void initRect();
void updateHandles() ;
private slots:
void onDelRect();
void onMousePress(QMouseEvent *event);
void onMouseMove(QMouseEvent *event);
void onMouseRelease(QMouseEvent *event);
double getMyLower();
double getMyUpper();
public:
QMyCustomPlot *mPlot;
QCPItemRect *mRect;
QCPItemRect *mLeftHandle;
QCPItemRect *mRightHandle;
//QCPItemPixmap *mPixmap;
int iMaxNum = 0;
QCPItemText *mItemTitle[MAX_NUM];
QStringList mstrTitle;
QString m_strUuid = "";
//分隔线
QCPItemLine* pLine[MAX_NUM-1];
enum DragMode { DragNone, DragLeft, DragRight, DragRect };
DragMode mDragMode = DragNone;
//double mDragStartX = 0;
double mDragStartY = 0;
QCPRange mDragStartRange;
// 添加最小宽度成员变量
double mMinWidth;
};
#endif // TRANSPARENTDRAGGABLEJIEGUTEXT_H