#include "graphicsItem/addSymbol.h" #include AddSymbol::AddSymbol(QGraphicsItem *parent) :ItemControlHandle(parent) { } AddSymbol::~AddSymbol() { } QRectF AddSymbol::boundingRect() const { return QRectF(-10,-10,20,20); } void AddSymbol::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) { Q_UNUSED(option) Q_UNUSED(widget) painter->setRenderHint(QPainter::Antialiasing); // 画笔 QPen pen(m_hovered ? Qt::yellow : Qt::blue); pen.setWidth(m_hovered ? 2 : 1); pen.setWidth(1); painter->setPen(pen); // 画圆 QRectF circleRect(-8, -8, 16, 16); painter->drawEllipse(circleRect); // 画十字 int len = 5; painter->drawLine(0, -len, 0, len); // 竖线 painter->drawLine(-len, 0, len, 0); // 横线 } void AddSymbol::hoverEnterEvent(QGraphicsSceneHoverEvent* event) { m_hovered = true; update(); ItemControlHandle::hoverEnterEvent(event); } void AddSymbol::hoverLeaveEvent(QGraphicsSceneHoverEvent* event) { m_hovered = false; update(); ItemControlHandle::hoverLeaveEvent(event); }