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?

Était-ce utile?

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()
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top