Qt:隐藏然后显示QQuickView可以防止未来的鼠标事件

时间:2016-11-09 05:46:06

标签: c++ qt qml qtquick2

我有一个QQuickView我已经使用createWindowContainer()嵌入了另一个小部件。

quickView = new QQuickView(...);
container = new QWidget();
createWindowContainer(quickView, container);

然后我将容器小部件添加到窗口内的小部件中。

layout = new QVBoxLayout();
fullWindowWidget->setLayout(layout);
layout->addWidget(container);

这似乎可以很好地渲染,但是如果我隐藏然后显示容器,似乎QQuickView QML场景不会处理鼠标事件。如果我在容器可见的情况下启动应用程序,它会处理鼠标事件。但是,如果我从隐藏的容器开始并显示容器,那么对容器的任何点击似乎都会冒泡到它后面的小部件。隐藏容器是否会使QQuickView处于一种奇怪的状态,即使再次可见,也会阻止点击?

1 个答案:

答案 0 :(得分:0)

看起来我正在主窗口上调用grabMouse()。在显示容器之前调用releaseMouse()似乎解决了这个问题。