0

谁负责管理事件?

对于以下代码:

bool MyView::gestureEvent(QGestureEvent *event)
{
    if (QGesture *hold = event->gesture(Qt::TapAndHoldGesture))
        holdTriggered(static_cast<QTapAndHoldGesture *>(hold));
    return true;
}

void MyView::holdTriggered(QTapAndHoldGesture *event)
{
    QPoint currentTouchPointPos = event->position().toPoint();
    QContextMenuEvent *event1 = new QContextMenuEvent(
                QContextMenuEvent::Mouse, currentTouchPointPos,
                currentTouchPointPos, Qt::NoModifier);
    QGraphicsView::contextMenuEvent(event1);
}

我在 Valgrind 下运行它,它告诉我有内存泄漏。

哪个是泄漏,event还是event1

我应该删除其中一个,还是两者都删除?还是我需要接受或忽略它们?

(我尝试删除event1,因为它是我创建的,Valgrind 仍然说我有内存泄漏;但event实际上是从调用者传递的,所以我不应该触摸它,我认为 - 甚至event1我不确定 - 不会发送它来QGraphicsView照顾它?)

4

0 回答 0