python3GUI--音乐播放器(精简版)By:PyQt5(附下载地址)

文章目录

  • 一.前言
  • 二.预览
    • 1.主界面
    • 2.歌单页
    • 3.歌词页
    • 4.播放列表
    • 5.mini
    • 6.设置
  • 三.心得
    • 1.解耦
    • 2.体验优化
    • 3.歌词显示
  • 四.总结


一.前言

传送门:
1.python3GUI–打造一款音乐播放器By:PyQt5(附下载地址)

2.python3GUI–音乐播放器第二弹By:PyQt5(附下载地址)

3.python3GUI–音乐播放器第三弹By:PyQt5(附下载地址)

本次在前面三个版本上进行代码删减,去掉冗余功能,注重提升用户体验,更换API,提高播放成功率。

二.预览

1.主界面

python3GUI--音乐播放器(精简版)By:PyQt5(附下载地址)_第1张图片
主界面延续之前的风格,对部分内容进行删减。
python3GUI--音乐播放器(精简版)By:PyQt5(附下载地址)_第2张图片

增加了歌单推荐,每张歌单都有30首歌曲

模仿web版x易云的banner,点击banner后,就会对banner推荐内容进行搜索

2.歌单页

python3GUI--音乐播放器(精简版)By:PyQt5(附下载地址)_第3张图片
上图为本地(下载)歌单
python3GUI--音乐播放器(精简版)By:PyQt5(附下载地址)_第4张图片
上图为在线歌单 or 搜索结果页

3.歌词页

python3GUI--音乐播放器(精简版)By:PyQt5(附下载地址)_第5张图片
本次优化了歌词页的歌词逻辑,增加了交互动画
python3GUI--音乐播放器(精简版)By:PyQt5(附下载地址)_第6张图片
增加了歌词页切换动画

4.播放列表

播放列表风格不变
python3GUI--音乐播放器(精简版)By:PyQt5(附下载地址)_第7张图片

5.mini

在这里插入图片描述
mini仿照x易云的mini窗口,做了相关交互动画
请添加图片描述

6.设置

本次重新绘制了设置窗口,设置窗口分为基本设置、搜索下载设置、高级设置。python3GUI--音乐播放器(精简版)By:PyQt5(附下载地址)_第8张图片

python3GUI--音乐播放器(精简版)By:PyQt5(附下载地址)_第9张图片
python3GUI--音乐播放器(精简版)By:PyQt5(附下载地址)_第10张图片

三.心得

1.解耦

解耦思路不仅仅应用在逻辑代码设计过程中,应该用在软件开发的各个环节当中,举个例子:通过设置多个QTableWidget将同类的不同数据区别展示,通过设置QStackedWidget的索引,展示相应的table,能够有效地在UI代码上解耦。

2.体验优化

如果您下载了本次我打包好的exe文件,就能够明显体验到,本次的软件启动、响应有了明显的提升,本次在UI设计上使用了缓存思路,把可能重复使用的资源文件(如:banner、歌手图片)缓存到本地,以提升整个UI响应速度,通过QThread配合信号和槽机制,让耗时的操作在子线程中进行,避免阻塞UI主线程,其中,在线音乐的源、歌词、歌图、歌手图、搜索结果、歌单图等数据都是在子线程中进行的。

3.歌词显示

记得前面笔者单独说了下歌词的显示机制,虽然简单实现了歌词的显示,并且能够和当前播放歌词匹配,但是仔细的话能够发现还是存在bug,比如歌词进度对不上、最后一局歌词无法渲染。本次重新调整了歌词显示逻辑,仍然使用正则切割出指定格式的歌词item,但是歌词的改变是通过QTimer实现的,并不是和player绑定,这样做提高了歌词的同步性、能够显示所有歌词。

四.总结

本次对音乐播放器进行了精简代码,约用了5500行代码,其中七分之三为UI代码,七分之三为逻辑代码,七分之一为引擎代码。本次提升了软件的稳定性、流畅性,打包好放在了这里,大家自取。

你可能感兴趣的:(GUI-PyQt5,qt,python,开发语言,ui)