我想知道如何将声子播放器设置为全屏? 我正在尝试这个代码。
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中重新创建它,对我来说似乎很难。 任何人都可以指导我失踪的东西(预感一下) 或者我做错了什么?
答案 0 :(得分:2)
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()
答案 1 :(得分:0)
我认为问题在于您使用self.ui.videoPlayer.isFullScreen
,它可能会返回True或False,当您使用self.ui.videoPlayer.isFullScreen()
时,它实际上已经解析为'False()'。
奇怪的是,PyQT documentation甚至没有列出'isFullScreen'作为可用的方法/属性的一部分。但是QWidget documentation确实将isFullScreen显示为返回布尔值。
相反,试试这个:
if not self.ui.videoPlayer.isFullScreen:
self.ui.videoPlayer.enterFullScreen()
else:
self.ui.videoPlayer.exitFullScreen()