PyQT фононный плеер для полноэкранного режима? - PullRequest
1 голос
/ 17 февраля 2012

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

    if not self.ui.videoPlayer.isFullScreen():
        self.ui.videoPlayer.enterFullScreen()
    else: 
        self.ui.videoPlayer.exitFullScreen()

но я продолжаю получать это сообщение об ошибке

TypeError: объект 'sip.methoddescriptor' не может быть вызван

приведенный выше код работает с примера проекта. оригинальный код был

def full(self):
    if not self.videoWidget.isFullScreen():
        self.videoWidget.enterFullScreen()
    else: 
        self.videoWidget.exitFullScreen()

Я воссоздаю его в PyQT, и мне кажется, что это трудно. Может ли кто-нибудь, пожалуйста, наставить меня на то, что я скучаю (догадываясь об этом) или что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 17 февраля 2012

A VideoPlayer - это не то же самое, что VideoWidget .

VideoPlayer - это подкласс QWidget, поэтому будет *У 1010 * есть метод isFullScreen - но не будет иметь методы enterFullScreen и exitFullScreen, которые принадлежат классу VideoWidget.

Однако *У класса 1019 * есть метод videoWidget , который возвращает экземпляр видео-виджета, который он использует, поэтому пример кода, вероятно, следует изменить на:

videoWidget = self.ui.videoPlayer.videoWidget()
if videoWidget.isFullScreen():
    videoWidget.exitFullScreen()
else: 
    videoWidget.enterFullScreen()

EDIT

Чтобы обеспечить способ выхода из полноэкранного режима, установите сочетание клавиш:

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()
0 голосов
/ 17 февраля 2012

Я думаю, что проблема в том, что вы используете 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()
...