MCPcopy Create free account
hub / github.com/Mrinank-Bhowmick/python-beginner-projects / VideoWindow

Class VideoWindow

projects/Qt5_YouTube/main.py:41–217  ·  view source on GitHub ↗

Window with video widget and media controls.

Source from the content-addressed store, hash-verified

39
40
41class VideoWindow(QMainWindow):
42 """Window with video widget and media controls."""
43
44 def __init__(self, parent=None) -> None:
45 """Initialise parent and window."""
46 super().__init__(parent)
47 self.setWindowTitle("QTube")
48
49 self.mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface)
50
51 videoWidget = QVideoWidget()
52
53 self.searchBox = QLineEdit()
54 self.searchBox.setPlaceholderText("Enter URL or search query")
55 self.searchBox.returnPressed.connect(self.search)
56
57 self.playButton = QPushButton()
58 self.playButton.setEnabled(False)
59 self.playButton.setIcon(self.style().standardIcon(QStyle.SP_MediaPlay))
60 self.playButton.clicked.connect(self.togglePlay)
61
62 self.elapsedLabel = QLabel("00:00:00")
63 self.durationLabel = QLabel("--:--:--")
64 self.positionSlider = QSlider(Qt.Horizontal)
65 self.positionSlider.setRange(0, 0)
66 self.positionSlider.sliderMoved.connect(self.setPosition)
67
68 self.volumeLabel = QLabel(f"🔈 {self.mediaPlayer.volume()}%")
69 self.volumeSlider = QSlider(Qt.Horizontal)
70 self.volumeSlider.setRange(0, 100)
71 self.volumeSlider.setValue(self.mediaPlayer.volume())
72 self.volumeSlider.valueChanged.connect(self.setVolume)
73
74 self.speedLabel = QLabel(f"Speed: {self.mediaPlayer.playbackRate()}x")
75 self.speedSlider = QSlider(Qt.Horizontal)
76 self.speedSlider.setRange(1, 16)
77 self.speedSlider.setValue(1)
78 self.speedSlider.valueChanged.connect(self.setSpeed)
79
80 self.bufferLabel = QLabel("Buffer: N/A")
81
82 self.errorLabel = QLabel()
83 self.errorLabel.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Maximum)
84
85 openAction = QAction(
86 self.style().standardIcon(QStyle.SP_DirIcon), "&Open", self
87 )
88 openAction.setShortcut("Ctrl+O")
89 openAction.setStatusTip("Open video")
90 openAction.triggered.connect(self.openFile)
91
92 exitAction = QAction(
93 self.style().standardIcon(QStyle.SP_DialogCloseButton), "&Exit", self
94 )
95 exitAction.setShortcut("Ctrl+Q")
96 exitAction.setStatusTip("Exit application")
97 exitAction.triggered.connect(self.closeWindow)
98

Callers 1

main.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected