I started with Diagramscene example.
In DiagramItem.cpp/.h I override:
{
qDebug() << (int)this << ": Hover enter event";
m_color = Qt::cyan;
}
{
qDebug() << (int)this << ": Hover leave event";
m_color = Qt::black;
}
{
if (option
->state
& QStyle::State_MouseOver ) {
qDebug() << (int)this << "Mouse over!";
}
p.setColor(m_color);
setPen(p);
qDebug() << m_color;
}
void DiagramItem::hoverEnterEvent(QGraphicsSceneHoverEvent * event)
{
qDebug() << (int)this << ": Hover enter event";
m_color = Qt::cyan;
QGraphicsPolygonItem::hoverEnterEvent(event);
}
void DiagramItem::hoverLeaveEvent(QGraphicsSceneHoverEvent * event)
{
qDebug() << (int)this << ": Hover leave event";
m_color = Qt::black;
QGraphicsPolygonItem::hoverLeaveEvent(event);
}
void DiagramItem::paint(QPainter * painter, const QStyleOptionGraphicsItem * option,
QWidget * widget)
{
if (option->state & QStyle::State_MouseOver )
{
qDebug() << (int)this << "Mouse over!";
}
QPen p = pen();
p.setColor(m_color);
setPen(p);
qDebug() << m_color;
QGraphicsPolygonItem::paint(painter, option, widget);
}
To copy to clipboard, switch view to plain text mode
in void DiagramScene::mousePressEvent(QGraphicsSceneMouseE vent *mouseEvent) I added item->setAcceptHoverEvents(true);
Bookmarks