hovermoveevent с несколькими дочерними элементами qGraphicsItem - PullRequest
0 голосов
/ 19 декабря 2018

мои QGraphicsitems состоят из сложных форм.Поэтому я проверяю в mousePressEvent, находится ли курсор мыши рядом с этой формой, и устанавливаю event-> ignore (), когда он не находится рядом, и ничего не делаю.

Но event-> ignore () не работает с mouseHoverEvent.Поэтому, если я игнорирую hoverMoveEvent (), я бы хотел переслать сигнал другим потомкам.Есть ли простой способ сделать это?

В противном случае я подумал сделать это в родительском и проверить все расстояния, а затем наведите курсор на этот элемент?

void XYCurvePrivate::hoverMoveEvent(QGraphicsSceneHoverEvent* event){

QByteArray ba = q->path().toLocal8Bit();
const char *c_str2 = ba.data();
DEBUG("HOVER curve "<< c_str2);
if( !q->activateCurve(event->pos(),pow(linePen.width(),2)*10)){
    m_hovered = false;
    emit q->unhovered();
    update();
    QGraphicsItem::hoverMoveEvent(event);
    return;
}
m_hovered = true;
emit q->hovered();
update();
}
...