一、效果展示
二、设计PyQt界面
本次ui界面设置用到了水平和垂直布局
2.1、设置ui窗口显示大小与位置
self.setWindowTitle('音乐播放器') # 设置窗口标题
self.setGeometry(800, 300, 800, 800) # 设置窗口大小和位置
2.2、创建显示歌曲列表控件
# 创建显示歌曲列表的控件
self.song_list = QListWidget(self)
2.3、创建歌曲名称和歌曲时间
self.name_label = QLabel('歌曲名称', self)
self.time_label = QLabel('00:00/00:00', self)
2.4、把歌曲名称和歌曲时间水平布局
# 创建水平布局用于放置歌曲名称和时间标签
self.label_layout = QHBoxLayout()
self.label_layout.addWidget(self.name_label)
self.label_layout.addWidget(self.time_label)
2.5、创建歌曲进度条
# 创建播放进度滑块
self.player_slider = QSlider()
self.player_slider.setValue(0) # 初始化滑块值为0
self.player_slider.setOrientation(Qt.Horizontal) # 设置为水平滑块
2.6、创建播放,选择文件,上一首,下一首组件
# 创建控制按钮
self.play_btn = QPushButton('播放', self)
self.choose_btn = QPushButton('选择文件', self)
self.pre_btn = QPushButton('上一首', self)
self.next_btn = QPushButton('下一首', self)
2.7、创建音量进度条
# 创建音量滑块
self.volume_slider = QSlider()
self.volume_slider.setRange(0, 100) # 设置音量范围
self.volume_slider.setValue(30) # 初始化音量值为30
self.volume_slider.setOrientation(Qt.Horizontal) # 设置为水平滑块
2.8、将按钮组件和音量进度条放在同一水平布局
# 创建按钮水平布局
self.btn_layout = QHBoxLayout()
self.btn_layout.addWidget(self.play_btn)
self.btn_layout.addWidget(self.choose_btn)
self.btn_layout.addWidget(self.pre_btn)
self.btn_layout.addWidget(self.next_btn)
self.btn_layout.addWidget(self.volume_slider)
2.9、创建垂直布局,将其组件放入
# 创建主垂直布局
self.vbox = QVBoxLayout()
self.vbox.addWidget(self.song_list) # 添加歌曲列表
self.vbox.addLayout(self.label_layout) # 添加标签布局
self.vbox.addWidget(self.player_slider) # 添加播放进度滑块
self.vbox.addLayout(self.btn_layout) # 添加按钮布局
2.10、设置主布局
self.setLayout(self.vbox) # 设置主布局