PyQt lecteur phonon à plein écran?
-
27-10-2019 - |
Question
Je me demandais comment configurer un lecteur phonon plein écran? im essayer ce code.
if not self.ui.videoPlayer.isFullScreen():
self.ui.videoPlayer.enterFullScreen()
else:
self.ui.videoPlayer.exitFullScreen()
mais je continue à obtenir ce message d'erreur
TypeError: 'sip.methoddescriptor' objet n'est pas appelable
le code ci-dessus fonctionne est d'un exemple de projet. le code d'origine était
def full(self):
if not self.videoWidget.isFullScreen():
self.videoWidget.enterFullScreen()
else:
self.videoWidget.exitFullScreen()
im recréer dans PyQT et il semble difficile pour moi. quelqu'un peut-il s'il vous plaît me guider sur ce qui im ??manque (ayant un pressentiment à ce sujet) ou de quoi je fais mal?
La solution
VideoPlayer n'est pas la même chose que VideoWidget .
VideoPlayer
est une sous-classe de QWidget
, il ont une méthode isFullScreen
- mais pas ont les méthodes enterFullScreen
et exitFullScreen
, qui appartiennent à la classe VideoWidget
.
Cependant, la classe VideoPlayer
a videoWidget méthode qui renvoie l'instance de la vidéo widget, utilise, de sorte que votre exemple de code devrait probablement être modifié à:
videoWidget = self.ui.videoPlayer.videoWidget()
if videoWidget.isFullScreen():
videoWidget.exitFullScreen()
else:
videoWidget.enterFullScreen()
EDIT
Pour fournir une méthode pour quitter le mode plein écran, mis en place un raccourci clavier:
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()
Autres conseils
Je pense que le problème est votre utilisation de self.ui.videoPlayer.isFullScreen
, il est probablement le retour Vrai ou faux, qui lorsque vous utilisez self.ui.videoPlayer.isFullScreen()
est vraiment vers le bas pour résout «Faux ().
Bizarrement, le PyQT documentation ne liste même pas « IsFullScreen » dans le cadre des méthodes disponibles, / propriétés. Cependant, le QWidget documentation fait IsFullScreen show en retour un booléen.
Au lieu de cela, essayez ceci:
if not self.ui.videoPlayer.isFullScreen:
self.ui.videoPlayer.enterFullScreen()
else:
self.ui.videoPlayer.exitFullScreen()