我想知道如何将声子播放器设置为全屏显示?
我正在尝试此代码。

    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中重新创建它,对我来说似乎很难。
谁能指导我关于我所缺少的东西(对此有预感)
还是我做错了什么?

最佳答案

VideoPlayerVideoWidget不同。

VideoPlayerQWidget的子类,因此它将具有isFullScreen方法-但不会具有属于enterFullScreen类的方法exitFullScreenVideoWidget

但是,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()

10-08 05:09