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