当单击主窗口时,QDialog as Popup不会隐藏在Mac上

时间:2012-10-08 17:31:43

标签: c++ macos qt

我有一个基本的QDialog,其WindowFlags设置为Qt :: Popup,因此它显示为典型的弹出叠加层。 在Windows上,一切都很好,如果你在主窗口外面点击或者在其他任何地方点击它就会消失。但是在Mac OSX上,如果单击顶部的菜单栏或调整窗口大小,弹出窗口就会保持原样。我绝对没有内部处理鼠标进入/离开/移动/按下弹出事件,所以关闭它不是我甚至处理的事情......它只是在Windows上自动。

当主应用程序不再是系统上的当前上下文时,我知道我可以关闭它吗?

1 个答案:

答案 0 :(得分:0)

当用户单击主窗口时,您可以安装本机事件过滤器并关闭活动弹出对话框(QApplication :: activePopupWidget())。有关如何安装本机过滤器的信息,请参阅以下answer