在MacOS上以全屏模式显示弹出窗口

时间:2017-12-08 09:20:32

标签: macos qt pyqt qt5 pyqt5

背景

我们正在构建一个带有“弹出”提醒的跨平台应用程序,它们是使用QWidget.setWindowFlags的自定义窗口/对话框,如下所示:

self.setWindowFlags(
    QtCore.Qt.Dialog
    | QtCore.Qt.WindowStaysOnTopHint
    | QtCore.Qt.FramelessWindowHint
)

这些弹出窗口显示在我们测试的系统上(MacOS,Lubuntu(LXDE)),即使我们在不同的虚拟桌面之间切换,对话框仍会显示在当前桌面中。但是:

问题

当用户在MacOS上以全屏模式 (Sierra 10.12.6)时,对话框会显示在上次使用的虚拟桌面中

问题

即使用户在MacOS上处于全屏模式,我们如何向用户显示“弹出”对话框?

1 个答案:

答案 0 :(得分:0)

简短的答案是您不能,其他任何应用程序也不能。

这就是为什么。

这个想法是,当您为某个应用选择全屏视图时,您希望只专注于该应用,而排除所有其他应用。因此,该应用程序不仅可以扩展以填满整个屏幕,还可以删除菜单栏并创建自己的桌面空间。

您可以使用任务控制(默认情况下,用三根手指向上滑动)查看其工作原理。您将在所有监视器上看到所有应用程序和所有桌面。接下来,将应用设置为全屏,然后再次向上滑动。您会看到该应用程序具有专用的桌面(我相信它甚至没有墙纸)。

最重要的是,macOS全屏视图不支持弹出窗口。