#ifndef HANDLETEXT_H #define HANDLETEXT_H #include #include "graphicsItem/itemControlHandle.h" int const TEXT_WIDTH = 30; int const TEXT_HEIGHT = 15; class QGraphicsProxyWidget; class HandleText : public ItemControlHandle { Q_OBJECT public: HandleText(QGraphicsItem *parent); virtual ~HandleText(); virtual void setText(QString) override; virtual QString getText() const override; void creatEditor(); //创建editor编辑文本 void setEditable(bool b){_editable = b;} signals: void editFinish(const QString&); protected: virtual void paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*) override; virtual QRectF boundingRect() const override; private: QString _text; QFont _font; QRectF _boundingRect; QGraphicsProxyWidget* _proxy; bool _editable; }; #endif