55 lines
1.1 KiB
C++
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);
|
|
}
|