【问题标题】:How can I disable full screen mode on Mac OS in my PyQT app?如何在我的 PyQT 应用程序中禁用 Mac OS 上的全屏模式?
【发布时间】:2022-01-08 13:55:41
【问题描述】:

我有一个简单的 PyQt 应用程序,我试图阻止应用程序在单击绿色最大化按钮时进入全屏模式(理想行为)或完全禁用该操作(如果第一个无法完成)。我已尝试删除其中一个窗口标志,但似乎没有效果:

class AppWindow(QMainWindow):
    def __init__(self, main_widget):
        super(AppWindow, self).__init__()
        self.setWindowFlags(self.windowFlags() & ~Qt.WindowFullscreenButtonHint)

我认为这实际上应该删除最大化按钮,但它甚至没有这样做。我希望保留最大按钮,但阻止进入全屏模式,或者我可以以某种方式覆盖按钮行为

【问题讨论】:

  • 我唯一的mac电脑很老了,所以我不知道新版本的变化,但是AFAIK,绿色按钮应该最大化窗口,而不是与“全屏”相同:全屏使窗口占据所有屏幕,不显示mac菜单栏和窗口标题栏,而最大化意味着窗口被调整大小以占据所有可用 屏幕空间,但仍显示标题栏和 mac 菜单栏。是这个意思吗?
  • @musicamante 是的,我相信几年前 Mac 的这种行为发生了变化。对于大多数应用程序,PyQT 或其他应用程序,如果您单击绿色按钮,它会全屏显示应用程序并隐藏菜单和标题栏,除非您将鼠标推到顶部以将它们拉下来。我正在尝试最大化同时仍显示菜单栏。

标签: python pyqt pyqt5


【解决方案1】:

这在任何地方都没有得到很好的记录,但我在一些随机帖子中发现了它,它似乎有效:

self.setWindowFlags((self.windowFlags() & ~Qt.WindowFullscreenButtonHint) | Qt.CustomizeWindowHint)

这添加了 CustomizeWindowHint,它允许您删除 WindowFullscreenButtonHint 标志并实际应用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多