退出全屏QMediaPlayer

时间:2016-07-19 09:53:48

标签: python pyqt pyqt5 qmediaplayer

我的问题是如何退出全屏。我制作了一个如下设置的程序:

    class Ui_MainWindow(object):
        def UI:
            some random ui stuff
            self.fullscreenbutton.clicked.connect(self.fullscreen)
        def vid(self):
            self.Video_Player = QtMultimediaWidgets.QVideoWidget(self.centralWidget)
            self.Video_Player.setObjectName("videoPlayer")
            self.horizontalLayout_4.addWidget(self.Video_Player)
            self.Video_Player.show()
            self.player = QtMultimedia.QMediaPlayer()
            self.player.setMedia(QMediaContent(QUrl.fromLocalFile(self.filePath)))
            self.player.setVideoOutput(self.Video_Player)
            self.player.play()
        def fullscreen(self):
            self.Video_Player.setFullscreen(True)

无论如何,我如何使用按键事件退出全屏。我知道如何进行按键事件,但是由于代码设置的方式我似乎无法使它们工作(因此上面给出了非常粗略的布局)。

我正在运行Windows 7,python 3.5,PyQt5。

P.S。很抱歉没有提供完整的代码,这是一个学校作业,如果在网上找到代码,可能很难证明它是我的。

1 个答案:

答案 0 :(得分:1)

class Ui_MainWindow(object):
        def setupUi(self, MainWindow):
            self.Video_Widget=Video_Widget_Class()
            self.horizontalLayout_4.addWidget(self.Video_Widget) 


class Video_Widget_Class(QVideoWidget):
        def Video_Widget(self):
            self.Video_Player = QtMultimediaWidgets.QVideoWidget(self.centralWidget)
            self.Video_Player.setObjectName("videoPlayer")
            self.Video_Player.show()

        def keyPressEvent(self, event):
            if event.key() == Qt.Key_Escape and self.isFullScreen():
                self.setFullScreen(False)
                event.accept()
            elif event.key() == Qt.Key_Enter and event.modifiers() & Qt.Key_Alt:
                self.setFullScreen(not self.isFullScreen())
                event.accept()

        def mouseDoubleClickEvent(self, event):
            self.setFullScreen(not self.isFullScreen())
            event.accept()

这是我用来解决问题的方法。在Ui_MainWindow下还有其他东西,但这应该有助于任何有同样问题的人。