自学PyQt5,我想编写一个播放网站上的视频链接的程序。由于QT Designer没有视频小部件,我必须找到其他人写的我自己的,并将其导入我的程序。我正在导入的整个代码都可以找到HERE。此视频窗口小部件窗口是在选择视频后打开的第二个窗口。
我想要做的是在播放列表的索引发生变化时更改视频窗口的标题。似乎我应该可以用self.playlist.currentIndexChanged.connect(self.dialog.setWindowTitle('Changed!'))
执行此操作,但我遇到的问题是因为我导入了打开视频窗口小部件的类/代码,我无法弄清楚如何监视信号。
这是我的功能:
def play_all_replays(self):
"""
creates a QMediaPlaylist object and inserts all the games replays (in order) to the playlist
and then plays it.
:return:
"""
self.dialog = videowidget.VideoPlayer() # this is the video player widget I import
self.playlist = QMediaPlaylist() # the playlist
self.dialog.mediaPlayer.setPlaylist(self.playlist) #mediaplay is the QMediaPlayer created in videowidget()
for v in self.single_game_highlights_ordered:
url = QUrl(v)
self.playlist.addMedia(QMediaContent(url))
self.dialog.mediaPlayer.setPlaylist(self.playlist)
self.playlist.setCurrentIndex(0)
self.dialog.mediaPlayer.play()
self.dialog.setWindowTitle('MLB Replay - {}')
self.dialog.show()
self.playlist.currentIndexChanged.connect(self.dialog.setWindowTitle('Changed!'))
所以我有点迷失在这里。如何查看此信号更改,然后将其传递给我导入的视频窗口小部件,以便我可以更改窗口标题(或其他内容,例如我想要启用“下一个”按钮,如果它是播放列表,或者播放列表中第一个视频播放后的“上一个”按钮?)
答案 0 :(得分:0)
这是解决方案。将函数的最后一行更改为:
self.playlist.currentIndexChanged.connect(self.playlist_changed)
然后调用此函数:
def playlist_changed(self):
num = self.playlist.currentIndex() # gets current playlist index
self.dialog.setWindowTitle('MLB Replay - {}'.format(self.replay_window.item(num).text()))