#ifndef DRAGQCPTEXT_H
#define DRAGQCPTEXT_H

#include "qcustomplot.h"

class DraggableText : public QCPItemText {
public:
    DraggableText(QCustomPlot *parentPlot) : QCPItemText(parentPlot) {
        ///setClipToAxis(false); // 允许拖出轴范围
    }

protected:
    QPointF clickPos; // 记录鼠标点击位置
    bool isDragging = false; // 是否正在拖动

    void mousePressEvent(QMouseEvent *event, const QPointF &pos)  {
        QCPItemText::mousePressEvent(event, pos);
        if (event->button() == Qt::RightButton) {
            clickPos = pos; // 记录点击位置
        }
    }

    void mouseMoveEvent(QMouseEvent *event, const QPointF &pos) override {
        QCPItemText::mouseMoveEvent(event, pos);
        if (isDragging) {
            double dx = pos.x() - clickPos.x();
            double dy = pos.y() - clickPos.y();
            position->setCoords(position->coords().x() + dx, position->coords().y() + dy);
        }
    }

    void mouseReleaseEvent(QMouseEvent *event, const QPointF &pos) override {
        QCPItemText::mouseReleaseEvent(event, pos);
        if (event->button() == Qt::RightButton) {
            isDragging = false;
        }
    }
};



#endif // DRAGQCPTEXT_H
