def _setup(self, filename):
self._viewport = Viewport(self, filename)
self._viewport.geometry_changed.connect(self._recenter)
self._viewport.playback_stopped.connect(self._playback_stopped)
self._isPlaying = True
self._hideTimer = None
yield from self._viewport.start_playing(filename)
toolbar = QtWidgets.QToolBar(self)
toolbar.setStyleSheet('QToolBar { background-color : rgba(255,255,255,100) ; color:white; border-color: transparent;} QToolButton{background-color : transparent;}')
rewind = toolbar.addAction(QtGui.QIcon('../icons/rewind.svg'), 'Rewind')
rewind.triggered.connect(self._rewind)
self._playPause = toolbar.addAction(QtGui.QIcon('../icons/pause.svg'), 'Play/pause')
self._playPause.triggered.connect(self._toggle_play_state)
stop = toolbar.addAction(QtGui.QIcon('../icons/stop.svg'), 'Stop')
stop.triggered.connect(self._stop_playback)
forward = toolbar.addAction(QtGui.QIcon('../icons/forward.svg'), 'Forward')
forward.triggered.connect(self._forward)
for cls in [SubtitleSelectionAction, AudioSelectionAction]:
action = cls(self._viewport.playbin, self)
toolbar.addAction(action)
btn = toolbar.widgetForAction(action)
btn.setPopupMode(btn.InstantPopup)
action.populate()
self._seeker = SeekSlider(self._viewport.playbin, self)
volume = QtWidgets.QSlider(QtCore.Qt.Horizontal)
volume.setMinimum(0)
volume.setMaximum(100)
volume.setValue(int(100 * self._viewport.playbin.volume))
volume.valueChanged.connect(self.changeVolume)
volume.setFixedWidth(100)
vlayout = QtWidgets.QVBoxLayout()
vlayout.setContentsMargins(3, 3, 3, 3)
vlayout.setSpacing(2)
hlayout = QtWidgets.QHBoxLayout()
hlayout.setContentsMargins(0, 0, 0, 0)
hlayout.addWidget(self._seeker.elapsedWidget())
hlayout.addWidget(toolbar, stretch=1)
hlayout.addWidget(self._seeker.remainingWidget())
vlayout.addLayout(hlayout)
hlayout = QtWidgets.QHBoxLayout()
vol = QtWidgets.QLabel('')
vol.setPixmap(QtGui.QIcon('../icons/volume.svg').pixmap(24, 24))
hlayout.addWidget(vol)
hlayout.addWidget(volume)
hlayout.addWidget(self._seeker, stretch=1)
vlayout.addLayout(hlayout)
self.setLayout(vlayout)
self._recenter()
self.show()
self.startHiding()
评论列表
文章目录