DiagramDesigner/diagramCavas/source/graphicsItem/addSymbol.cpp

55 lines
1.1 KiB
C++

#include "graphicsItem/addSymbol.h"
#include <QPainter>
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);
}