鼠标经过GraphicsItem矩形边框变换形状效果不能用hoverEnterEvent, 只能用hoverMoveEvent,注意设置QGraphicsItem的子类的下述属性才能检测到Hover事件。
setAcceptHoverEvents
void graphicsrectitem::hoverMoveEvent(QGraphicsSceneHoverEvent *event)
{
if ((event->pos().y()<m_oldRect.y()+10)&&(event->pos().y()>m_oldRect.y()-20))
setCursor(Qt::SizeVerCursor);
else if ((event->pos().x()<m_oldRect.x()+10)&&(event->pos().x()>m_oldRect.x()-20))
setCursor(Qt::SizeHorCursor);
else if ( (event->pos().y()>m_oldRect.bottom()-10)&&(event->pos().y()<m_oldRect.bottom()+20) )
setCursor(Qt::SizeVerCursor);
else if ( (event->pos().x()>m_oldRect.right()-10)&&(event->pos().x()<m_oldRect.right()+20) )
setCursor(Qt::SizeHorCursor);
else
{
setCursor(Qt::PointingHandCursor);
}
}
(true);