简述
其实在很早以前博主就有想用Qt写一个比较好的音乐播放器的想法,但由于平时上课的压力和以前对设计模式和代码规范做的不太好,一直没有进行。所以在这个寒假准备好好的设计一下。下面先简单的说明一下设计的大概。
- 网络音乐API的获取
- 界面的布局
- 功能模块分布设计
网络音乐API的获取
这部分之前博主是准备利用Python的爬虫进行酷狗或者网易云音乐的官方API的获取。但参考了网上的一些博客,在后面会列出来有兴趣的朋友可以去了解一下。
但博主觉得太过于复杂,并且接口和数据的加密形式很容易变化,后来就选择了一个开源了一些API的网站,在这里对网站维护者表达崇高的敬意。在后面博主会专门针对这个API的参数做出一些自己的理解。PS:对网站维护者比心心
博主:Mi_Chong 文章: 网易云音乐API获取分析
API提供网站(PS:请勿将本网站中提到的任何api接口用作商业用途。)
https://api.imjad.cn/
界面的布局
关于界面的布局,博主大概想参考酷狗音乐PC端和网易云音乐PC端
关于登录注册: 首先贴图
模仿登录功能,实现登录模拟对话框。
点击登录后,进入到登录模态对话框,在这里先给出实现概念图。
根据下图所示,重难点可能在于用户名(QComBoBox)的代理设计。
模仿注册功能,实现注册模拟对话框。
点击注册后或者在登录界面点击注册账号后会转到注册模态对话框,在这里先给出实现概念图。
根据下图所示,注册框的重点和难点应该在于动态生成验证码。(PS:博主打算是在一张空白图片上随机生成数字)
关于生成随机验证码,博主打算的是利用QLabel重写事件来实现。具体步骤在这里不做过多的解释,博主会在另一篇文章单独给出。PS:在下图中没有画出重新生成验证码的Button,在后期实现代码的时候会跟上。
关于自定义任务栏
首先展示酷狗界面的任务栏,如下图。
博主想基于酷狗的自定义任务栏进行实现,经过博主的考虑,暂时只实现部分功能,这部分功能包括工具,换肤,设置,隐藏窗口化,最小化,关闭。如下图展示的图标
下面我们以此来浏览上图的各个功能,首先我们打开工具,出现的是一个模态对话框。
说到这里,我想说明的一点是如果想实现打开一个对话框,底层窗口暗化可以用QPalette进行处理或者Qss控制。
依然经过博主的考虑后打算只实现下图所示,格式转化在设计的时候另做考虑。
关于换肤的界面如下图
接下里是点击设置,设置对话框大概如下图
另外关于隐藏音乐库,最小化,关闭在这里暂不一一介绍。
更多关于这个播放器的设置,将会在后面慢慢更新。