谁负责管理活动?
以下代码:
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
照顾它吗?)