我想知道如何将声子播放器设置为全屏显示?
我正在尝试此代码。
if not self.ui.videoPlayer.isFullScreen():
self.ui.videoPlayer.enterFullScreen()
else:
self.ui.videoPlayer.exitFullScreen()
但我继续收到此错误消息
TypeError:“ sip.methoddescriptor”对象不可调用
上面的代码来自一个示例项目。原始代码是
def full(self):
if not self.videoWidget.isFullScreen():
self.videoWidget.enterFullScreen()
else:
self.videoWidget.exitFullScreen()
我在PyQT中重新创建它,对我来说似乎很难。
谁能指导我关于我所缺少的东西(对此有预感)
还是我做错了什么?
最佳答案
VideoPlayer与VideoWidget不同。VideoPlayer
是QWidget
的子类,因此它将具有isFullScreen
方法-但不会具有属于enterFullScreen
类的方法exitFullScreen
和VideoWidget
。
但是,VideoPlayer
类具有videoWidget方法,该方法返回其使用的视频窗口小部件的实例,因此您的代码示例可能应更改为:
videoWidget = self.ui.videoPlayer.videoWidget()
if videoWidget.isFullScreen():
videoWidget.exitFullScreen()
else:
videoWidget.enterFullScreen()
编辑
要提供退出全屏模式的方法,请设置键盘快捷键:
class MainWindow(QtGui.QMainWindow):
def __init__(self)
...
self.shortcutFull = QtGui.QShortcut(self)
self.shortcutFull.setKey(QtGui.QKeySequence('F11'))
self.shortcutFull.setContext(QtCore.Qt.ApplicationShortcut)
self.shortcutFull.activated.connect(self.handleFullScreen)
def handleFullScreen(self):
videoWidget = self.ui.videoPlayer.videoWidget()
if videoWidget.isFullScreen():
videoWidget.exitFullScreen()
else:
videoWidget.enterFullScreen()