如何用pyqt5制作可以隐藏控件的视频播放器?

def setupUi(self, MainWindow):

    MainWindow.setObjectName("MainWindow")
    MainWindow.resize(529, 797)
    MainWindow.setMinimumSize(QtCore.QSize(100, 0))
    MainWindow.setStyleSheet("")
    self.centralwidget = QtWidgets.QWidget(MainWindow)
    self.centralwidget.setObjectName("centralwidget")
    self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
    self.gridLayout.setObjectName("gridLayout")

    #Frame for playing video
    self.frame = QtWidgets.QFrame(self.centralwidget)
    sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
    sizePolicy.setHorizontalStretch(4)
    sizePolicy.setVerticalStretch(0)
    sizePolicy.setHeightForWidth(self.frame.sizePolicy().hasHeightForWidth())
    self.frame.setSizePolicy(sizePolicy)
    self.frame.setStyleSheet("background-color:rgb(0,0,0)")
    self.frame.setObjectName("frame")

    #Button for fast rewind
    self.pushButton = QtWidgets.QPushButton(self.centralwidget)
    sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
    sizePolicy.setHorizontalStretch(0)
    sizePolicy.setVerticalStretch(0)
    sizePolicy.setHeightForWidth(self.pushButton.sizePolicy().hasHeightForWidth())
    self.pushButton.setSizePolicy(sizePolicy)
    self.pushButton.setObjectName("pushButton")
    self.pushButton.setStyleSheet("background-color:transparent")
    self.pushButton.setFlat(True)
    self.gridLayout.addWidget(self.pushButton, 0, 0, 1, 1)

    #Button for fast forward
    self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
    sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
    sizePolicy.setHorizontalStretch(0)
    sizePolicy.setVerticalStretch(0)
    sizePolicy.setHeightForWidth(self.pushButton_2.sizePolicy().hasHeightForWidth())
    self.pushButton_2.setSizePolicy(sizePolicy)
    self.pushButton_2.setStyleSheet("")
    self.pushButton_2.setObjectName("pushButton_2")
    self.pushButton_2.setStyleSheet("background-color:transparent")
    self.pushButton_2.setFlat(True)
    self.gridLayout.addWidget(self.pushButton_2, 0, 3, 1, 1)

    #Button for play/pause
    self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
    sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
    sizePolicy.setHorizontalStretch(0)
    sizePolicy.setVerticalStretch(0)
    sizePolicy.setHeightForWidth(self.pushButton_3.sizePolicy().hasHeightForWidth())
    self.pushButton_3.setSizePolicy(sizePolicy)
    self.pushButton_3.setMinimumSize(QtCore.QSize(0, 0))
    self.pushButton_3.setObjectName("pushButton_3")
    self.pushButton_3.clicked.connect(self.play_pause)
    self.pushButton_3.setStyleSheet("background-color:transparent")
    self.pushButton_3.setFlat(True)
    self.gridLayout.addWidget(self.pushButton_3, 0, 1, 1, 2)
    self.gridLayout.addWidget(self.frame, 0, 0, 1, 4)
    MainWindow.setCentralWidget(self.centralwidget)

最近在做一个用pyqt5实现ui的视频播放器,但是碰到了一些问题。我想要实现让整个播放器分为三大块,分别对应快退、快进和暂停的效果,并且隐藏这些按钮让视频不会被挡住。我之前试过在mainwindow上添加frame用于播放视频,再在frame上添加按钮,但是那样会导致视频开始播放后按钮无法被点击到。我现在尝试的方法是在mainwindow上同时添加frame和按钮,但是这样又会导致视频被按钮挡住,即使我让按钮的背景色为透明并且setflat(true)也没有用,甚至还会让按钮上的文本消失。求大佬帮助!

在视频播放时,链接事件使用控件的setvisable属性使控件消失,需要再出现时可以监听鼠标点击界面,再使对应控件出现,希望可以采纳,具体可以私聊+q

 

如果要实现一般播放器的,鼠标移动显示控件,静止控件消失的功能,可以将控件绑定鼠标事件,具体事件看需求,当鼠标事件被处罚则将控件show,否则hide