Pyqt Phonon Player to Full -Screen?
-
27-10-2019 - |
Pregunta
Me preguntaba cómo configurar un reproductor de fonones en la pantalla completa. Estoy intentando estos códigos.
if not self.ui.videoPlayer.isFullScreen():
self.ui.videoPlayer.enterFullScreen()
else:
self.ui.videoPlayer.exitFullScreen()
Pero sigo recibiendo este mensaje de error
TypeError: 'sip.methoddescriptor' El objeto no es llamable
El código anterior funciona de un proyecto de muestra. El código original era
def full(self):
if not self.videoWidget.isFullScreen():
self.videoWidget.enterFullScreen()
else:
self.videoWidget.exitFullScreen()
Lo estoy recreando en Pyqt y me parece difícil. ¿Alguien puede guiarme sobre lo que me estoy perdiendo (tengo un presentimiento al respecto) o lo que estoy haciendo mal?
Solución
A Reproductor de video no es lo mismo que un Videowidget.
VideoPlayer
es una subclase de QWidget
, por lo que voluntad tienen una isFullScreen
método, pero no tener los métodos enterFullScreen
y exitFullScreen
, que pertenecen al VideoWidget
clase.
sin embargo, el VideoPlayer
la clase tiene un videowidget Método que devuelve la instancia del widget de video que utiliza, por lo que su ejemplo de código probablemente debería cambiarse a:
videoWidget = self.ui.videoPlayer.videoWidget()
if videoWidget.isFullScreen():
videoWidget.exitFullScreen()
else:
videoWidget.enterFullScreen()
EDITAR
Para proporcionar un método para salir del modo de pantalla completa, configure un atajo de teclado:
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()
Otros consejos
Creo que el problema es tu uso de self.ui.videoPlayer.isFullScreen
, probablemente regrese verdadero o falso, que cuando usa self.ui.videoPlayer.isFullScreen()
realmente se está resolviendo a 'false ()'.
Curiosamente, el pyqt documentación Ni siquiera enumera 'isfullscreen' como parte de los métodos/propiedades disponibles. Sin embargo, el Documentación de QWidget muestra a IsfullScreen como devolver un booleano.
En su lugar, prueba esto:
if not self.ui.videoPlayer.isFullScreen:
self.ui.videoPlayer.enterFullScreen()
else:
self.ui.videoPlayer.exitFullScreen()