Pyqt Phonon Player в полноэкранный?
-
27-10-2019 - |
Вопрос
Мне было интересно, как установить фононный игрок на полный экран? Я пробую эти коды.
if not self.ui.videoPlayer.isFullScreen():
self.ui.videoPlayer.enterFullScreen()
else:
self.ui.videoPlayer.exitFullScreen()
Но я продолжаю получать это сообщение об ошибке
TypeError: 'Sup.methoddescriptor' объект не может быть вызовом
Приведенный выше код работает из образца проекта. исходный код был
def full(self):
if not self.videoWidget.isFullScreen():
self.videoWidget.enterFullScreen()
else:
self.videoWidget.exitFullScreen()
Я воссоздаю это в PYQT, и мне это кажется трудным. Может ли кто -нибудь, пожалуйста, направить меня на то, что мне не хватает (с достойной достойной этого) или что я делаю не так?
Решение
А Видео-плеер не то же самое, что Видеовиджет.
VideoPlayer
это подкласс QWidget
, так что будут есть isFullScreen
Метод - но это не будет есть методы enterFullScreen
а также exitFullScreen
, который принадлежит VideoWidget
учебный класс.
Тем не менее VideoPlayer
класс имеет Видеовиджет Метод, который возвращает экземпляр виджета видео, который он использует, поэтому ваш пример кода, вероятно, должен быть изменен на:
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()
Другие советы
Я думаю, что проблема в том, что вы используете self.ui.videoPlayer.isFullScreen
, вероятно, возвращает True или False, что при использовании self.ui.videoPlayer.isFullScreen()
Действительно решает «false ()».
Как ни странно, pyqt документация Даже не перечисляет «isfullScreen» как часть доступных методов/свойств. Тем не менее Qwidget документация Показывает IsfullScreen как возвращение логического.
Вместо этого попробуйте это:
if not self.ui.videoPlayer.isFullScreen:
self.ui.videoPlayer.enterFullScreen()
else:
self.ui.videoPlayer.exitFullScreen()