c++ Qt:隐藏然后显示QQuickView可防止以后发生鼠标事件

knsnq2tg  于 2023-02-26  发布在  其他
关注(0)|答案(1)|浏览(216)

我使用createWindowContainer()在另一个小工具上嵌入了一个QQuickView。

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

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

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

这看起来在渲染方面工作得很好,但是如果我隐藏然后显示容器,QQuickView QML场景似乎不能处理鼠标事件。如果我在容器可见的情况下启动应用程序,它可以很好地处理鼠标事件。但是如果我从隐藏容器开始并显示容器,容器上的任何点击似乎都被冒泡到它后面的小部件上。隐藏容器是否会使QQuickView处于一种奇怪的状态,即使它“又看得见了?

hmae6n7t

hmae6n7t1#

看起来我在主窗口调用了grabMouse()。在显示容器之前调用releaseMouse()似乎可以修复它。

相关问题