pyQT声子播放器到全屏



我想知道如何将声子播放器设置为全屏?我在试这个密码。

    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不是一回事。

VideoPlayerQWidget的一个子类,因此它有一个isFullScreen方法,但它不会有属于VideoWidget类的方法enterFullScreenexitFullScreen

然而,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()

我认为问题在于您使用了self.ui.videoPlayer.isFullScreen,它可能返回True或False,当您使用self.ui.videoPlayer.isFullScreen()时,这实际上解决了"False()"。

奇怪的是,PyQT文档甚至没有将"isFullScreen"列为可用方法/属性的一部分。然而,QWidget文档确实显示isFullScreen返回布尔值。

相反,试试这个:

if not self.ui.videoPlayer.isFullScreen:
    self.ui.videoPlayer.enterFullScreen()
else: 
    self.ui.videoPlayer.exitFullScreen()

相关内容

  • 没有找到相关文章

最新更新