PyQt5,MacOS - 强制 GUI 坚持当前打开的桌面空间

Posted

技术标签:

【中文标题】PyQt5,MacOS - 强制 GUI 坚持当前打开的桌面空间【英文标题】:PyQt5, MacOS - Force GUI to stick with currently opened desktop space 【发布时间】:2019-06-17 21:20:50 【问题描述】:

我正在开发一个小型 GUI 应用程序,它可以使用 PyQt5 使用 MacOS 菜单栏中的托盘图标显示/隐藏。

不幸的是,有一个小问题我找不到解决方案。

场景:我在终端窗口中运行我的 python 脚本来启动应用程序*。图标出现,我可以使用菜单托盘图标很好地显示/隐藏 GUI。但是,如果我切换到另一个桌面空间并随后单击菜单托盘图标打开 GUI,MacOS 会切换回我打开应用程序的桌面空间。

我想要实现的目标:在当前打开的任何桌面空间上显示 GUI。

有人有这种实现的经验吗?

感谢阅读。

注意:应用程序完成后,我计划将其转换为 .app,但这当然不适合开发过程。

【问题讨论】:

【参考方案1】:

如果你以后在任何地方看到这个帖子,我最终想通了:-)

将窗口标志 QtCore.Qt.WindowStaysOnTopHint 添加到我的主 GUI 类可确保 GUI 始终在当前存在的桌面空间上打开。

self.setWindowFlags(
    QtCore.Qt.WindowStaysOnTopHint
)

【讨论】:

以上是关于PyQt5,MacOS - 强制 GUI 坚持当前打开的桌面空间的主要内容,如果未能解决你的问题,请参考以下文章

在 macOS 和 Windows 上使用 PyInstaller 编译时,简单的 PyQt5 GUI 看起来像 GTK

认识PyQt5

认识PyQt5

PyQt5配合Qt-Designer实现GUI

Linux:在 PyQt5 GUI 上显示所有当前连接的 USB 记忆棒的名称

PyQt5快速入门PyQt5 GUI界面设计