Вопрос

Мне было интересно, как установить фононный игрок на полный экран? Я пробую эти коды.

    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()
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top