当前位置: 首页 > news >正文

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年开发的项目,最后希望大家天天开心,学业进步!

在这里插入图片描述

http://www.dtcms.com/a/481701.html

相关文章:

  • Go 1.21 新特性:context.AfterFunc 的实用指南
  • Acer软件下载
  • 分组密码:加密模式、可鉴别加密模式、加密认证模式
  • RocketMQ高并发编程技巧(二)
  • 算法沉淀第二天(Catching the Krug)
  • redis-4.0.11-1.ky10.sw_64.rpm安装教程(申威麒麟V10 64位系统详细步骤)
  • 为企业为什么做网站企业网站建设注意什么
  • 从监听风险到绝对隐私:Zoom偷听门后,Briefing+CPolar重新定义远程会议安全标准
  • 网站源代码下载工具网站备案网站前置审批
  • 基于GENESIS64核心可视化组件GraphWorX64的工业图形设计解决方案
  • QML学习笔记(三十七)QML的Slider
  • 3:Django-migrate
  • 【Linux】网络基础概念
  • Go语言技术与应用(三):服务注册发现机制详解
  • 网线学习笔记
  • 【OpenHarmony】存储管理服务模块架构
  • 网站做报表网站维护是谁做的
  • 阿里云k8s部署微服务yaml和Dockerfile文件脚本
  • [Backstage] 后端插件 | 包架构 | 独立微服务 | by HTTP路由
  • java微服务-尚医通-编写接口
  • Go|sync.Pool|临时对象池,实现临时对象的复用,降低GC压力
  • go语言了解
  • 网站页面高度福建住房城乡建设部网站
  • 【Go】--数组和切片
  • 李宏毅机器学习笔记22
  • 重排反应是什么?从分子变化到四大关键特征解析
  • 服务治理与 API 网关:微服务流量管理的艺术
  • 怎样做企业的网站首页网站开发求职简历
  • 程序设计基础第2周上课前预习
  • 谷歌 chrome 浏览器安装crx插件(hackbar为例)