65 lines
1.3 KiB
C++
65 lines
1.3 KiB
C++
#ifndef ITEMCONTROLHANDLE_H
|
||
#define ITEMCONTROLHANDLE_H
|
||
|
||
#include <QGraphicsRectItem>
|
||
|
||
enum HandleType
|
||
{
|
||
T_resize, //调整大小
|
||
T_rotate, //旋转
|
||
T_editShape, //编辑形状
|
||
T_lineIn, //入线口
|
||
T_lineOut //出线口
|
||
};
|
||
|
||
enum HandleTag
|
||
{
|
||
H_none = 0,
|
||
H_leftTop,
|
||
H_top,
|
||
H_rightTop,
|
||
H_right,
|
||
H_rightBottom,
|
||
H_bottom,
|
||
H_leftBottom,
|
||
H_left, //8
|
||
H_rotate_leftTop,
|
||
H_rotate_rightTop,
|
||
H_rotate_rightBottom,
|
||
H_rotate_leftBottom, //12
|
||
H_edit,
|
||
H_connect = 50 //连接操作点从50开始,前面预留
|
||
};
|
||
|
||
|
||
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; }
|
||
|
||
int getSize();
|
||
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
|