C++ QGraphicscene::addWidget()上的鼠标按下事件

C++ QGraphicscene::addWidget()上的鼠标按下事件,c++,qt,events,C++,Qt,Events,我的QMenu有问题,每次调用qgraphicscene::addWidget()时,它都会发出aboutToHide()。在堆栈中,我可以看到在addWidget()之后生成的鼠标事件,但我不知道它是在哪里生成的 //Window constructor: ... QTimer* timer = new QTimer; timer->setInterval(500); QGLFormat fmt; fmt.setSampleBuffers(true); fmt.setSamples(2)

我的
QMenu
有问题,每次调用
qgraphicscene::addWidget()
时,它都会发出
aboutToHide()
。在堆栈中,我可以看到在
addWidget()
之后生成的鼠标事件,但我不知道它是在哪里生成的

//Window constructor:
...
QTimer* timer = new QTimer;
timer->setInterval(500);
QGLFormat fmt;
fmt.setSampleBuffers(true);
fmt.setSamples(2);
ui->graphicsView->setViewport(new QGLWidget(fmt, this));
QGraphicsScene* scene = new QGraphicsScene(this);
ui->graphicsView->setScene(scene);
connect(timer, SIGNAL(timeout()), this, SLOT(addLabel()));
...
Window::addLabel()
{
   QLabel* label = new QLabel("LABEL");
   QGraphicsProxyWidget* proxy = ui->graphicsView->scene()->addWidget(label);
}

然后我会得到一个每半秒关闭一次的菜单。

您每半秒添加一个标签(每次QTimer超时)。也许你忘了断开计时器?我只是一个例子,我的问题是为什么每次调用
addWidget()
时都会出现鼠标按下事件,以及如何修复它。
addWidget()
不应该发出任何鼠标按下事件。您可以添加其余的代码吗?
addWidget()
不会发出鼠标按下事件,但是
QMenu
的行为看起来像是在某个地方发出的,现在我可以在堆栈中看到
QMenu::hideEvent()
。这就是全部代码。在设计器中创建的简单
main窗口