主要内容 #
- 列表记忆功能
1. 列表记忆功能 #
像qq音乐,网易云音乐在内的大部分音乐播放器都有列表记忆功能。
即上一次播放的列表音乐在下一次打开app时会直接显示。
但是我们的播放器在每次打开播放器时都需要重新打开文件夹操作,这样的程序用户体验不好。
本次课程的内容就是完成列表记忆功能,程序如下:
def load_setting(self): """ 导入setting """ if os.path.isfile(self.setting_filename): config = configparser.ConfigParser() config.read(self.setting_filename) self.cur_path = config.get('MusicPlayer', 'PATH') self.show_music_list() # 导入配置后,直接展示音乐列表 def update_setting(self): """ 更新setting """ config = configparser.ConfigParser() config.read(self.setting_filename) if not os.path.isfile(self.setting_filename): config.add_section('MusicPlayer') config.set('MusicPlayer', 'PATH', self.cur_path) config.write(open(self.setting_filename, 'w'))
以上程序完成了通过配置文件的方式来保存上次打开的文件夹,
然后每次启动程序时会直接读取文件夹来实现音乐列表记忆功能。
以上程序仅仅是实现在功能,还需要在程序中进行有效配置。
程序如下:
# 在self.init()中找到如下这部分代码 self.is_switching = False self.is_pause = True # 是否暂停 # 并且在下一行增加如下这段代码 self.setting_filename = 'setting.ini' # 配置文件名称 # 在self.init()中找到如下这部分代码 self.qList.itemDoubleClicked.connect(self.double_clicked) # 并且在下一行增加如下这段代码 self.load_setting() # 导入setting
上述程序完成了每次都需要找配置文件,然后根据配置文件来读取文件夹和音乐列表的功能。
最后,还需要编写更新配置文件的功能,
即每次展示音乐列表的时候都去更新配置文件,做到每次都把最新的音乐文件夹保存在配置文件中。
程序如下:
# 在self.show_music_list()中找到如下这部分代码 self.qlist.clear() # 并且在下一行增加如下这段代码 self.update_setting()
将以上所有程序加入到MusicPlayer类中,并且在self.init()函数中做好相应地修改。
再次运行程序,查看具体效果。
至此,即完成了音乐播放器的所有功能模块。
2. 小结 #
- 本章完成了音乐播放器的列表记忆功能
- 简易音乐播放器的所有功能模块都已完成
习题 #
- 自行添加新的功能
- 对该模块代码进行打包操作