python3GUI--new音乐播放器!By:PyQt5(附下载地址)

news2024/12/28 21:37:09

文章目录

  • 一.前言
  • 二.展示
    • 1.启动
    • 2.MV推荐
    • 3.专辑详情页
    • 4.歌手详情页
    • 5.搜索结果页
    • 6.歌曲播放页
    • 7.我喜欢歌曲页
    • 8.我喜欢专辑页
  • 三.思路&启发
    • 1.布局
    • 2.细节
    • 3.组件复用
    • 4.项目结构
    • 5.优化速度
      • 1.Nuitka
        • 1.显著提高性能:
        • 2.减小程序体积:
        • 3.增强安全性:
      • 2.采用缓存机制
      • 3.页面索引记录
  • 四.食用方法
  • 五.总结


欢迎下载体验!

文件大小:72.03M
下载地址:https://wwt.lanzoul.com/iTWDU25p2oih

一.前言

大家好呀,之前预告过了,近期要发一款新的音乐播放器,保证亮眼!本次使用PyQt5开发一款主打听欧美风歌曲的音乐播放器,软件包含多个页面,支持歌词描边、帅气的播放页,让我们拭目以待!对了,有的读者说我的博客图太多了,最好是能多写一些开发思路,本篇全是干货,请大家放心阅读。

二.展示

1.启动

本次的音乐播放器主打简约风。经过一个splash之后进入我们的软件主页,首页包含多个模块,分别是专辑推荐、单曲推荐、MV推荐、歌手排行。
在这里插入图片描述

首页下方是歌手排行模块
在这里插入图片描述

2.MV推荐

MV推荐页面随机推荐MV内容,每个内容都是可以点击播放的~
在这里插入图片描述

3.专辑详情页

专辑详情页和歌手详情页头部背景均采用封面模糊化处理

在这里插入图片描述

4.歌手详情页

歌手详情页内部包含多个tab,均可点击,在此不再赘述。

在这里插入图片描述

5.搜索结果页

搜索结果页包含多个类别
在这里插入图片描述

6.歌曲播放页

本次的歌曲播放页经过精心设计,包括明暗两种配色。
在这里插入图片描述
在这里插入图片描述

7.我喜欢歌曲页

在这里插入图片描述

8.我喜欢专辑页

在这里插入图片描述

三.思路&启发

1.布局

本次开发仍然脱离了QT设计师,所有ui内容都是手搓出来的,拿主界面举个例子,我们把主界面分成多个区域:整体在一个widget上,然后防止堆叠组件,使用不同的“页”控制内容的展示,整体是垂直布局,上方为水平布局,内部为垂直布局,将我们的界面拆成不同的区域(类),方便管理与测试,最后把每个部分拼接起来,实现各自的功能,构成我们软件的主体。
在这里插入图片描述
老是有朋友问,左侧导航栏控制右侧展示不同内容的需求如何实现,在此介绍一下我的思路把:用按钮+堆栈布局(组件)即可,使用按钮控制堆栈组件(布局)的索引,展示不同的内容。
同理,播放页亦是如此。
在这里插入图片描述

2.细节

本次增加了许多细节,我来列举一下吧:
1.页面切换效果使用动画
2.无边框+阴影+可调整大小窗口
3.窗口全屏\恢复切换动画
4.歌名(歌手名)滚动效果
5.专辑(歌手详情)背景模糊效果
6.播放页歌词滚动效果
7.特色桌面歌词
8.特色对话框

3.组件复用

为了我们的软件整体风格统一,我这边定义了多个按钮类和标签类,它们具有相同的属性,将配置写入单独的配置文件里,统一管理图标与颜色及样式。

4.项目结构

PyQt5项目并没有一个规范的项目同一结构,下图是我们项目的项目结构 run.pyw是我们软件的入口,其他目录见名知意。
在这里插入图片描述

5.优化速度

本次从代码层面对软件的启动速度、响应速度进行优化:具体来说是:

1.Nuitka

Nuitka优点大致如下:

1.显著提高性能:

Nuitka 通过将 Python 代码编译成二进制格式,可以显著提高程序的执行速度。由于 C++ 代码的执行效率通常高于 Python 解释器,因此编译后的程序在执行时会更加快速,能够更有效地利用系统资源。

2.减小程序体积:

相比其他打包工具,Nuitka 生成的执行文件通常体积更小。这是因为 Nuitka 在编译过程中会优化代码,去除不必要的部分,并将多个模块合并成一个紧凑的可执行文件。

3.增强安全性:

将 Python 代码编译成二进制格式还可以增强程序的安全性。由于攻击者难以直接查看或修改编译后的代码,因此逆向工程或篡改程序的难度大大增加。

2.采用缓存机制

在软件根目录/data/cache/cover下缓存着界面加载的封面数据,因为我们耗时操作大多是由访问接口以及加载封面造成的,访问接口采用线程的方式,在子线程里进行耗时操作,加载图片时,先检测本地是否存在图片,有的话直接从本地读取,否则加载网路图片展示到界面上,之后把图片混存到本地,所以我们软件根目录是越来越大的,用户可以定期清理缓存数据优化存储空间。

3.页面索引记录

我们的主界面以及子界面是用堆栈组件构成的,比如我们首次点击排行榜页面,需要加载每个排行榜的数据,当我们在此切换到这个页面时,由于已经加载过了,就不会再产生网络请求重复加载了,同理:搜索结果页、歌手详情页…都用了这个思想。

四.食用方法

安装时,请避免中文、带空格的目录!
本次开发软件依赖外部接口,具体来说是依赖node.js提供的接口服务,不过无需担心,笔者已经打包好了。
windows用户首先双击运行kill&start.bat,待黑框显示本地服务地址(一般是http://localhost:3000
然后双击exe启动软件即可。

五.总结

本次和大家分享了我使用PyQt5开发的新音乐播放器,清新的界面你一定会喜欢!欢迎大家下载尝试!
近期应该是不会再开发新的播放器了,项目重心放到别的上面了,有时间会和大家分享的!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1969658.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SPSSAU | 德尔菲专家法原理及案例实操分析

德尔菲专家法Delphi是一种结构化的预测和决策方法,主要用于收集和综合专家意见,进而做出相应决策的研究方法。比如在我们建立指标体系时,首先选择20个备选指标,然后寻找10位专家进行评价(评价该20个指标是否具有可行&a…

聊聊ChatGLM6B的微调脚本及与Huggingface的关联

前言 本文首先分析微调脚本trainer.sh的内容,再剖析ChatGLM是如何与Huggingface平台对接,实现transformers库的API直接调用ChatGLM模型,最后定位到了ChatGLM模型的源码文件。 脚本分析 微调脚本: PRE_SEQ_LEN128 LR2e-2CUDA_V…

GeneAvatar: 3D 数字人编辑方案

定位: GeneAvatar是一种通用方法,用于编辑不同体积表示(如NeRFBlendShape、INSTA、Next3D)中的3D数字人,仅需一张2D图像即可实现友好的编辑操作。 核心功能: 支持使用2D编辑方法(如拖拽式GAN、文本驱动编辑等&#x…

[Bugku] web-CTF-GET

GET 1.开启环境 2.根据内容得知在网址url后输入?whatflag

字符设备驱动基础—sys文件系统,udev介绍,驱动模块在内核空间注册设备

文章目录 sys文件系统介绍设计思想应用和功能 udev介绍主要功能工作原理使用 udevadm 工具 设备文件创建流程驱动程序的注册device_create函数详解示例代码效果图 sys文件系统介绍 sysfs 是 Linux 内核中的一种虚拟文件系统,它为用户空间和内核之间提供了一种统一的…

C语言小练习(贰)

上机 计算n以内所有正奇数的和 ? n值通过键盘输入 #include <stdio.h>int main() {int sum 0;int i 1;int n;printf("请输入一个范围\n");scanf("%d",&n);do{if(i % 2 ! 0)//判断奇数{sum i;}i;}while(i < n);//限定条件printf("范围…

Python连接数据库:JDBC不是唯一选择!

你是否曾困惑于如何在Python中连接数据库?也许你听说过JDBC,但不确定它是否适用于Python?别担心,本文将为你揭开Python数据库连接的神秘面纱! 目录 JDBC vs Python数据库连接Python连接数据库的正确姿势Python的数据库连接方案为什么Python不直接使用ODBC或JDBC&#xff1f;…

正点原子imx6ull-mini-Linux驱动之阻塞IO和非阻塞IO实验(12)

阻塞和非阻塞 IO 是 Linux 驱动开发里面很常见的两种设备访问模式&#xff0c;在编写驱动的时候 一定要考虑到阻塞和非阻塞。本章我们就来学习一下阻塞和非阻塞 IO&#xff0c;以及如何在驱动程序中 处理阻塞与非阻塞&#xff0c;如何在驱动程序使用等待队列和 poll 机制。 1&…

2024-08-01升级问题记录:升级ArcGIS for Android

升级以离线方式引用的arcgis for Android &#xff0c;从10.2.7到 10.2.9 1、下载完整的aar库 地址&#xff1a;JFroghttps://esri.jfrog.io/ui/native/arcgis/com/esri/arcgis/android/arcgis-android/10.2.9/ 2、替换旧的库&#xff0c;由于10.2.7是以jar方式引用&#xf…

Win10系统,使用钉钉会议共享屏幕的时候,别人看到的都是全黑或全白屏幕

环境&#xff1a; Win10系统 钉钉7.6.0 问题描述&#xff1a; Win10系统&#xff0c;使用钉钉会议共享屏幕的时候&#xff0c;别人看到的都是全黑或全白屏幕 解决方案&#xff1a; 在Win10系统上使用钉钉会议共享屏幕出现全黑或全白的问题&#xff0c;这可能与系统升级兼容…

盘点那些实用的开发技术!!

敏感信息加密操作&#xff0c;让开发的系统更加的安全可靠&#xff01;&#xff01;Jasypt&#xff08;Java Simplified Encryption&#xff09;是一个开源的Java库&#xff0c;用于简化加密操作。https://mp.weixin.qq.com/s/sPBV8Ej46YJsElImodRjAQ每个Web开发都应了解的&…

一个前后端分离架构的低代码开发平台,支持微服务架构,支持开发SAAS项目(附源码)

前言 在当前的企业软件开发领域&#xff0c;开发者常常面临着代码重复性高、开发效率低、项目周期长等挑战。现有的软件解-决方案往往难以满足快速变化的市场需求&#xff0c;特别是在SAAS项目、企业信息管理系统&#xff08;MIS&#xff09;、内部办公系统&#xff08;OA&…

淘天笔试0508-选择题

kmp中&#xff0c;匹配失败时&#xff0c;主串不动。模式串回退&#xff1a;最长前后缀的前缀位置。 bcabbccabbacaa abbac 比较3次&#xff0c;a匹配成功 一直到匹配abb&#xff0c;比较了5次. c和a不匹配&#xff0c;比较6次。 abb最长前后缀长度为0&#xff0c;模式串回退到…

昇思25天学习打卡营第18天|MindSporeK近邻算法实现红酒聚类学习- MindSpore进行KNN实验

基于MobileNetv2的垃圾分类 本文档主要介绍垃圾分类代码开发的方法。通过读取本地图像数据作为输入&#xff0c;对图像中的垃圾物体进行检测&#xff0c;并且将检测结果图片保存到文件中。 1、实验目的 了解熟悉垃圾分类应用代码的编写&#xff08;Python语言&#xff09;&a…

[Bugku] web-CTF-alert

1.开启环境 2.根据题目得知flag就在这里&#xff0c;F12查看一下源码 3.发现编码&#xff0c;使用Unicode解码

Java数组反转,添加,排序,查找

目录 1.数组反转 2.数组添加 3.排序的介绍 冒泡排序法 4.查找 1.数组反转 定义一个数组然后将它的第一个元素与最后一个元素调换位置。 i为数组的长度减一&#xff0c;也就是最后一个元素的下标&#xff0c;j为0&#xff0c;也就是数组中第一个元素的下标&#xff0c;然后…

MATLAB(13)蚁狮群优化BP模型数据读取ALO_BP

一、前言 为了使用蚁狮优化算法&#xff08;Ant Lion Optimizer, ALO&#xff09;来优化BP&#xff08;反向传播&#xff09;神经网络模型中的参数&#xff08;如学习率、权重初始化等&#xff09;&#xff0c;我们首先需要定义蚁狮优化算法来搜索最优参数&#xff0c;然后使用…

【全网最全最详细】MYSQL 面试题大全(下)

目录 五十一、MYSQL主从复制的过程? 五十二、介绍一下InnbDB的数据页,和B+树的关系是什么? 五十三、MYSQL的驱动表是什么?如何选驱动表? 五十四、MYSQL的hash join是什么? 五十五、MYSQL执行大事务会存在什么问题? 五十六、什么是buffer pool? 五十七、buffer p…

ChinaJoy BTOB完美收官,Flat Ads高光时刻全回顾

7 月 26 日至 7 月 29 日, 2024 年第二十一届 ChinaJoy 在上海新国际博览中心隆重举行,其中 ChinaJoy BTOB 商务洽谈馆已于 7 月 28 日正式收官。ChinaJoy 作为全球数字娱乐领域兼具知名度与影响力的年度盛会,汇聚了来自世界各地的游戏和科技企业,展示其最新的科技成果和创新产…

AIGC第“五小龙”有苗条了?

纵观人类发展史&#xff0c;每一次世界性变革发生的背后无一不是靠生产力、生产工具支撑、驱动的。并且随着生产工具愈发先进话、科技化&#xff0c;相邻两场革命的时间间隔也在不断缩减&#xff0c;带来的社会、经济、政治等多方面的效应却是以超十倍、百倍、千倍……的增速在…