【问题标题】:How to leave fullscreen in PyQt5?如何在 PyQt5 中离开全屏模式?
【发布时间】:2020-10-05 00:21:29
【问题描述】:

我希望能够通过按 F11 在正常模式和全屏模式之间切换。如果我使用 F11 进入全屏或使用菜单栏,它工作正常。但我希望能够再次按 F11 离开全屏模式。这是我尝试过的:

    self.setFullscreen = QtWidgets.QAction("&Fullscreen", self)
    self.setFullscreen.setShortcut("F11")
    self.setFullscreen.setStatusTip("Change to fullscreen mode")


    if self.isFullScreen():
        self.setFullscreen.triggered.connect(lambda _: self.showNormal())

    else:
        self.setFullscreen.triggered.connect(lambda _: self.showFullScreen())

    # menubar

    self.menu = QtWidgets.QMenuBar(self)

    self.file_menu = self.menu.addMenu("&File")
    self.file_menu.addAction(self.openFile)
    self.file_menu.addAction(self.saveFile)
    self.file_menu.addAction(self.exitApp)

    self.view_menu = self.menu.addMenu("&View")
    self.view_menu.addAction(self.setFullscreen)

【问题讨论】:

    标签: python pyqt pyqt5 fullscreen


    【解决方案1】:

    如果您提供的代码在小部件的__init__ 中,那么if 语句完全没用,因为它只会被处理一次。

    您需要连接一个函数,该函数在实际触发时根据当前窗口状态实际切换状态:

            self.setFullscreen = QtWidgets.QAction("&Fullscreen", self)
            self.setFullscreen.setShortcut("F11")
            self.setFullscreen.setStatusTip("Change to fullscreen mode")
            self.setFullscreen.triggered.connect(self.toggleFullScreen)
            # ...
    
        def toggleFullScreen(self):
            if self.isFullScreen():
                self.showNormal()
            else:
                self.showFullScreen()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-24
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      • 2020-04-11
      • 1970-01-01
      • 1970-01-01
      • 2015-11-04
      相关资源
      最近更新 更多