56 lines
1.0 KiB
C
56 lines
1.0 KiB
C
|
|
#ifndef ITEMCONTROLHANDLE_H
|
||
|
|
#define ITEMCONTROLHANDLE_H
|
||
|
|
|
||
|
|
#include <QGraphicsRectItem>
|
||
|
|
|
||
|
|
enum HandleType
|
||
|
|
{
|
||
|
|
T_resize, //调整大小
|
||
|
|
T_editShape //编辑形状
|
||
|
|
};
|
||
|
|
|
||
|
|
enum HandleTag
|
||
|
|
{
|
||
|
|
H_none = 0,
|
||
|
|
H_leftTop,
|
||
|
|
H_top,
|
||
|
|
H_rightTop,
|
||
|
|
H_right,
|
||
|
|
H_rightBottom,
|
||
|
|
H_bottom,
|
||
|
|
H_leftBottom,
|
||
|
|
H_left, //8
|
||
|
|
H_edit
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
class ItemControlHandle : public QObject,public QGraphicsRectItem
|
||
|
|
{
|
||
|
|
Q_OBJECT
|
||
|
|
|
||
|
|
public:
|
||
|
|
ItemControlHandle(QGraphicsItem *parent);
|
||
|
|
virtual ~ItemControlHandle();
|
||
|
|
|
||
|
|
public:
|
||
|
|
void setType(HandleType ht) { m_type = ht; }
|
||
|
|
HandleType getType() { return m_type; }
|
||
|
|
|
||
|
|
void setTag(int ht) { m_tag = ht; }
|
||
|
|
int getTag() { return m_tag; }
|
||
|
|
|
||
|
|
void move(double, double);
|
||
|
|
|
||
|
|
protected:
|
||
|
|
virtual void hoverEnterEvent(QGraphicsSceneHoverEvent*) override;
|
||
|
|
virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent*) override;
|
||
|
|
virtual void paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*) override;
|
||
|
|
|
||
|
|
private:
|
||
|
|
HandleType m_type;
|
||
|
|
int m_tag;
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
#endif
|