我想知道如何将声子播放器设置为全屏?我在试这个密码。
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
方法,但它不会有属于VideoWidget
类的方法enterFullScreen
和exitFullScreen
。
然而,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()