具有多个qGraphicsItem子级的hovermoveevent

时间:2018-12-19 13:37:37

标签: qt hover parent-child qgraphicsscene qgraphicsitem

我的QGraphicsitems由困难的形状组成。因此,我检查mousePressEvent中的mousecursor是否位于此形状附近,并在其不位于该位置时设置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();
}

0 个答案:

没有答案