我希望能够通过按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)
如果您提供的代码在小部件的__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()