背景
我们正在构建一个带有"弹出"提醒的跨平台应用程序,它们是使用QWidget.setWindowFlags
的自定义Windows/对话框:
self.setWindowFlags(
QtCore.Qt.Dialog
| QtCore.Qt.WindowStaysOnTopHint
| QtCore.Qt.FramelessWindowHint
)
这些弹出窗口显示在我们已经测试的系统(MacOS,Lubuntu(LXDE))上,即使我们在不同的虚拟桌面之间切换对话框仍显示在当前桌面中。但是:
问题
当用户在macos 上以全屏模式处于(sierra 10.12.6)时,对话框在最后一个使用的虚拟桌面中显示
问题
即使用户处于MacOS上的全屏模式?
简短的答案是您不能,其他任何应用都不能。
这就是原因。
这个想法是,当您选择应用程序的全屏视图时,您希望专注于该应用程序,以排除所有其他应用程序。因此,该应用不仅扩展以填充整个屏幕,还可以删除菜单栏并创建自己的桌面空间。
您可以看到使用任务控件的工作方式(默认情况下,用3个手指向上滑动)。您将在所有监视器中看到所有应用程序和所有桌面。接下来,将应用程序设置为全屏,然后再次滑动。您会看到该应用具有专用桌面(我相信它甚至没有墙纸)。
最重要的是MacOS全屏视图不支持弹出窗口。