如何在PyQt5中保持全屏显示?

问题描述 投票:0回答:1

我希望能够通过按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个回答
0
投票

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

您需要连接到实际上在触发时根据current窗口状态实际切换状态的功能:

        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()
© www.soinside.com 2019 - 2024. All rights reserved.