如何在 PyQt5 中保持全屏?
How to leave fullscreen in PyQt5?
我希望能够通过按 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
语句完全没有用,因为它只会被处理一次。
你需要的是连接到一个函数,它根据当前 window状态实际切换状态,当它被实际触发时:
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()
我希望能够通过按 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
语句完全没有用,因为它只会被处理一次。
你需要的是连接到一个函数,它根据当前 window状态实际切换状态,当它被实际触发时:
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()