Pyqt Phonon Player zum Vollbild?
-
27-10-2019 - |
Frage
Ich habe mich gefragt, wie man einen Phonon -Player auf den Vollbildmodus setzt. Ich versuche diese Codes.
if not self.ui.videoPlayer.isFullScreen():
self.ui.videoPlayer.enterFullScreen()
else:
self.ui.videoPlayer.exitFullScreen()
Aber ich erhalte diese Fehlermeldung immer wieder
TypeError: 'SIP.Methoddescriptor' Objekt ist nicht aufrufbar
Der obige Code funktioniert aus einem Beispielprojekt. Der ursprüngliche Code war
def full(self):
if not self.videoWidget.isFullScreen():
self.videoWidget.enterFullScreen()
else:
self.videoWidget.exitFullScreen()
Ich erzeugte es in Pyqt und es scheint mir schwer zu sein. Kann mich jemand bitte dazu führen, was mir fehlt (eine Ahnung davon) oder was ich falsch mache?
Lösung
EIN Videoplayer ist nicht dasselbe wie a Videowidget.
VideoPlayer
ist eine Unterklasse von QWidget
, so dass es Wille einen haben isFullScreen
Methode - aber es Gewohnheit haben die Methoden enterFullScreen
und exitFullScreen
, was zum der gehören VideoWidget
Klasse.
Allerdings die VideoPlayer
Klasse hat a Videowidget Methode, die die Instanz des von es verwendeten Video -Widgets zurückgibt, sodass Ihr Code -Beispiel wahrscheinlich geändert werden sollte:
videoWidget = self.ui.videoPlayer.videoWidget()
if videoWidget.isFullScreen():
videoWidget.exitFullScreen()
else:
videoWidget.enterFullScreen()
BEARBEITEN
Um eine Methode zum Verlassen des Vollbildmodus zu erhalten, richten Sie eine Tastaturverknüpfung ein:
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()
Andere Tipps
Ich denke, das Problem ist Ihre Verwendung von self.ui.videoPlayer.isFullScreen
, Es kehrt wahrscheinlich wahr oder falsch zurück, was bei Verwendung self.ui.videoPlayer.isFullScreen()
Entschlossen sich wirklich auf 'false ()'.
Seltsamerweise der Pyqt Dokumentation Listet nicht einmal 'isFiLlscreen' als Teil der verfügbaren Methoden/Eigenschaften auf. Jedoch das Qwidget -Dokumentation Zeigt IsfiLlscreen als Rückgabe eines Booleschen.
Versuchen Sie stattdessen das:
if not self.ui.videoPlayer.isFullScreen:
self.ui.videoPlayer.enterFullScreen()
else:
self.ui.videoPlayer.exitFullScreen()