python3GUI--模仿百度网盘的本地文件管理器 By:PyQt5(详细分享)
文章目录
- 一.前言
- 二.项目简介
- 三.详细模块介绍
- 1.登录注册
- 2.主界面
- 3.桌面mini组件
- 4.锁定界面
- 5.其他核心界面
- 1.音视频播放器
- 2.图片查看器
- 3.文本编辑器
- 四.心得体会
- 1.界面设计
- 2.博主对qt设计师设计软件的看法
- 3.以后还会开发哪些软件
- 五.总结
本软件是一个本地文件管理器,包含多个功能强大的子组件,非常适合学习PyQt!
一.前言
哈喽大家好呀,今天继续给大家带来我使用PyQt5开发的软件,本次给大家打来的是一款仿百度网盘的本地文件管理器,这款软件UI样式模仿了百度网盘的样式,包含多功能文件管理界面、登录注册界面、锁定界面、自定义的音视频播放组件、图片查看组件、文本编辑组件、mini桌面贴合组件、托盘组件…更多惊喜等你发现!
二.项目简介
这里我们使用一张思维导图尽可能展示本软件系统的所有功能
软件包括多个模块和组件,下面我会进行详细介绍~
三.详细模块介绍
1.登录注册
一款成型的软件系统是不能缺少登录注册的,本软件系统也是支持登录注册,并且实现了记住密码和自动登录功能,左侧二维码好奇的朋友可以去扫描,扫描之后跳转到博主的CSDN主页,我们设置了贴心的提示标签,对用户当前输入的内容进行校验,通过与数据库数据进行比对来进行登录的验证,我们使用了sqlite3数据库加密存储了用户的密码数据,只有用户自己知道自己的密码,用户登录成功后会更新lastlogin的数据,用户数据表建表语句如下:
CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, -- 内部唯一主键username TEXT NOT NULL UNIQUE,password TEXT NOT NULL,lastlogin INTEGER
)
2.主界面
用户登录成功后进入到软件主界面,主界面样式大家都很熟悉,主界面由顶部标题tab栏、左侧导航栏、右侧内容区构成。
在顶部区域展示了当前软件的图标和名字点击logo跳转到博主博客主页、核心tab页面切换按钮、右侧用户信息以及窗口控制区域。
左侧tab栏展示了常用的一切导航按钮,用户可以快速地切换到本机对应的目录查看文件夹内容,下面的二维码展示了作者的博客主页二维码,算得上是作者的一个AD吧,最底部是当前机器的磁盘使用/总磁盘容量显示。
右侧内容区域是我们核心操作区域,这个区域支持两种视图分别是:列表视图和网格(缩略图)视图通过右上角按钮切换,在本区域可以对文件或文件夹进行操作,用户可以在每个item上右击,执行对应的功能。
下面使用动图来展示
3.桌面mini组件
这个小组件会在用户成功登录诸侯贴合在桌面右上角,用户可以自行拖动此组件到任意位置,在这个组件上右击能够看到所有的右击快捷操作菜单,菜单中可以进行和托盘一样的操作:打开主界面、锁定、关于、退出。
用户可以拖动单个或多个文件到此组件,组件获取到文件后会自动将文件移动到用户的个人文件夹中,此功能为一个便捷操作。
4.锁定界面
这是博主的一个巧思,界面也是借鉴了百度网盘的UI界面,通过在此界面的输入框中输入用户密码解除锁定,回到主界面。
5.其他核心界面
这里我们内置了三类文件打开的解决方案,主要是针对音视频、图片、文本文件。
下面是我们支持打开的文件数据类型
# 图片文件扩展名
image_extensions = {".jpg", ".jpeg", ".png", ".gif", ".bmp", ".tiff", ".webp", ".svg", ".ico", ".heic", ".jp2"
}
# 音乐文件扩展名
audio_extensions = {".mp3", ".wav", ".flac", ".aac", ".ogg", ".wma", ".m4a", ".alac", ".aiff", ".pcm"
}
# 视频文件扩展名
video_extensions = {".mp4", ".avi", ".mkv", ".mov", ".flv", ".wmv", ".webm", ".mpeg", ".mpg", ".m4v", ".3gp", ".ts"
}# 文本文件扩展名
text_extensions = {# 常见文本文档'.txt', '.log', '.md', '.csv', '.json', '.xml', '.yaml', '.yml', '.ini', '.cfg', '.conf', '.tex',# 网页文件'.html', '.htm', '.css', '.js', '.php', '.asp', '.aspx', '.jsp',# 脚本文件'.py', '.sh', '.bat', '.ps1', '.rb', '.pl', '.lua', '.r',# 数据文件'.tsv', '.jsonl', '.sql', '.db', '.sqlite', '.toml',# 标记语言/文档'.mdx', '.rst', '.adoc', '.org',# 日志/配置扩展'.log', '.cfg', '.conf', '.ini'
}
1.音视频播放器
当用户打开音频(或视频)文件时,默认使用本系统自带的音视频播放器进行播放,播放器支持播放进度、模式、文件切换与调整、支持静音还原、播放暂停,值得一提的是我们为音频播放设置可可视化动感的播放效果,欢迎大家体验!
2.图片查看器
熟悉我的朋友对这个组件肯定是熟悉,没错,我们借鉴了前面图片查看器,但是稍作了调整,为左右切换按钮加入了黑色遮罩背景,这样我们在查看白色背景图片时,仍然能够看清这两个按钮,顶部放置了快捷操作按钮,用户可以自由缩放、处理当前文件,图片查看器支持鼠标滚轮缩放调整图片,更多细节期待你来发现!
3.文本编辑器
这是博主仿照文本编辑器进行的开发,支持基本文本操作,支持展示行号,大家能够在这个组件中完成基本的文本编辑需求,我们贴心设计了多种功能入口:顶部菜单区域、顶部中间工具按钮、全中文右击菜单。
四.心得体会
1.界面设计
自从开始使用webengine+内嵌html代码的模式,博主就开始一发不可收了,因为确实很好用,这不是一种专用的设计思路,而是一种通用的界面设计思路,有时候不得不承认PyQt的组件定制化的局限性,要不就是去绘制、要不就是去继承重写,我们使用web的方式解决了这个痛点,通过自由的css样式设计自己想实现的复杂界面,就拿主界面来说,我们分成了三个区域,您能看出有哪些位置使用了web来实现的么?博主使用一张图来揭晓谜底!
图中三个位置都是使用了web来开发设计出来的,灵活的tab搭配上可以关闭的广告以及强大的右侧文件管理&视图切换,让我们尽可能敏捷地还原目标软件的样式!
2.博主对qt设计师设计软件的看法
这里谈谈我对 Qt Designer 这款设计软件的看法。
我认为 Qt Designer 是一款非常优秀的工具。相信许多同学在初学时,都是从它入门的。它极大地降低了学习门槛,让我们能够通过可视化的方式绘制界面,更直观地理解各类组件与布局的共性和特性。
不过,我想强调的是:Qt Designer 虽然功能强大、组件丰富,但毕竟还是有限的。Qt 本身拥有上千个类,不可能全部集成在设计器中。因此,当遇到一些特殊需求时,单靠设计器往往难以实现。此外,在实际项目中常会出现重复模块的情况,如果每次都依赖设计器从头设计一遍,显然不够高效。
随着对 PyQt 理解的深入,你会逐渐发现这种“依赖设计器”的感觉会改变。虽然在初期我们可以暂时使用 .ui 文件(基于 XML),但最终想要实现灵活、可扩展的功能,仍然需要回归到 Python 代码本身。
3.以后还会开发哪些软件
这个说不好,真的我这个人其实三分热度,但是决定要做的就一定做好甚至是完美,喜欢的东西愿意花时间去研究,也喜欢接受一定范围内的新鲜事物。
本身接触PyQt是因为它能帮助设计漂亮并且功能强大的界面,了解博主的朋友可能知道我开发音乐播放器都有5~6款了,刚开始开发音乐播放器就想把所有功能都加到里面,到后来越做越臃肿,慢慢地随着我做项目的增多,开始模块化设计界面和功能,复杂界面也能设计,但是大道至简,把用户常用的功能设计出来即可,就拿音乐播放器举例子:基础的列表展示、歌单功能、搜索、播放器相关功能做出来其实就比较不错了,因为大多数人用的大多数功能也就这些,至于听歌识曲、电台…没有必要的。
今年开发了几款联动YOLO的软件系统,我个人是比较喜欢的,在此按照博主喜欢程度给大家推荐一下:
1、python3GUI–基于PyQt5+DeepSort+YOLOv8智能人员入侵检测系统(详细图文介绍)
2、python3GUI–智慧交通分析平台:By:PyQt5+YOLOv8(详细介绍)
3、python3GUI–视频监控管理平台 By:PyQt5(详细讲解)
4、python3GUI–车牌、车牌颜色识别可视化系统 By:PyQt5(详细介绍)
5、python3GUI–Joy音乐播放器 在线播放器 播放器 By:PyQt5(附下载地址)
这些都是我今年非常不错PyQt5开发的软件!
五.总结
本次和大家详细分享了我使用PyQt5开发的模仿百度网盘的本地文件管理器,详细展示了每个页面、组件的具体功能,最后和大家分享了我对UI设计的一些看法与心得体会,最后推荐了一些本人2025年开发的项目,最后希望大家天天开心,学业进步!