谁负责管理事件?
对于以下代码:
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
照顾它?)