#pragma once #include #include #include #include #include #include #include #include #include "global.h" #include "GlobalDefine.h" class MyQGraphicsTextItem : public QGraphicsTextItem { Q_OBJECT public: enum TransformType { NONE, MOVE, ROTATE, SCALE }; public: MyQGraphicsTextItem(const QString &text, QGraphicsItem *parent = nullptr) : QGraphicsTextItem(text, parent) { // 在这里可以设置文本的样式或者进行其他初始化操作 } ~MyQGraphicsTextItem(); signals: void signal_select(int id); public: void SetTextAttr(double x1, double y1); protected: void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override; void mousePressEvent(QGraphicsSceneMouseEvent *event) override; private: QLineF m_levelLine; TransformType m_translteType; QPointF m_mousePressDownPos; //鼠标按下时在场景中的位置 public: int m_id; double charPosX = 0.0; double charPosY = 0.0; double charWidth = 0.0; double charHeight = 0.0; QString charContent; };