python3GUI--使用PyQt5仿飞车登录界面(详细图文介绍)
文章目录
- 一.前言
- 二.相关介绍
- 1.游戏介绍
- 2.PyQt5
- 3.界面效果简介
- 三.展示
- 四.技术细节
- 1.游戏资源获取
- 2.界面布局分析
- 3.代码编写原则
- 4.组件化开发
- 5.开发的乐趣
- 6.往期优秀作品
- 五.总结
本篇用作技术分享交流,目的是讨论学习PyQt5软件界面开发!
下图为最终效果:
大家可以移步我的视频,观看所有软件界面设计细节:爆肝五小时,用PyQt5仿作了一个QQ飞车登录界面?
对源码感兴趣的朋友可以移步我的小店进行购买:PyQt5开发的仿飞车登录界面
欢迎大家造访我的主页:怀念メ的个人空间-怀念メ个人主页-哔哩哔哩视频
一.前言
QQ飞车大家应该都玩过,作为一款我们青春的回忆,已经有将近二十个年头了,本次博主使用PyQt5仿作QQ飞车登录界面,尽可能还原界面上所有组件细节,撰写本篇博客和大家分享软件设计中的细节。
二.相关介绍
1.游戏介绍
《QQ飞车》电脑版端游是由腾讯公司推出的一款3D竞速类网络游戏,于2008年正式上线。游戏以赛车竞速为核心玩法,融合了时尚装扮、社交互动和休闲娱乐等元素,为玩家打造了一个充满速度与激情的虚拟赛车世界。玩家可以驾驶造型各异、性能丰富的赛车,在城市街道、未来都市、海滨沙滩、冰雪世界等多种主题赛道中展开比赛,通过漂移、双喷、氮气加速、空喷等技巧提升竞速水平,感受高速驾驶带来的刺激体验。
《QQ飞车》电脑版拥有竞速赛、道具赛、排位赛、组队赛、剧情模式等多种游戏模式,既考验玩家的操作技巧,也强调团队之间的配合。游戏中的赛车系统十分丰富,玩家可以通过获取、改装和升级赛车来提升性能,同时还能搭配个性化角色服饰、宠物和装饰,打造属于自己的独特形象。此外,游戏内完善的社交系统让玩家能够与好友组队比赛、创建车队,共同参与各种赛事活动。
经过多年的发展,《QQ飞车》电脑版不断更新赛道、赛车和玩法内容,凭借流畅的操作体验、精美的游戏画面以及充满青春气息的竞速氛围,成为国内经典的网络赛车游戏之一。它不仅带给玩家追求速度极限的竞技乐趣,也记录了许多人青春时期与好友一起竞速、挑战和成长的珍贵回忆。
2.PyQt5
PyQt5是一个基于Python语言的跨平台图形用户界面(GUI)开发框架,它是Qt应用程序框架与Python语言结合的产物,由Riverbank Computing开发维护。PyQt5将Qt强大的界面设计能力和Python简单易用的特点结合起来,使开发者能够快速创建功能丰富、界面美观的桌面应用程序。它支持Windows、Linux、macOS等多个操作系统,广泛应用于软件工具、数据分析平台、自动化程序、图像处理软件以及企业级应用开发等领域。
PyQt5提供了大量内置控件和功能模块,包括窗口、按钮、输入框、菜单栏、表格、树形结构、对话框等常用组件,同时支持信号与槽机制,使不同组件之间能够方便地进行事件交互。开发者可以通过布局管理器灵活设计界面,也可以结合Qt Designer进行可视化界面设计,提高开发效率。此外,PyQt5还支持数据库连接、多线程编程、网络通信、绘图、动画效果等高级功能,能够满足复杂应用程序的开发需求。
相比传统桌面开发语言,PyQt5具有开发速度快、代码结构清晰、学习成本较低等优势。借助Python丰富的第三方库生态,开发者可以轻松将数据处理、人工智能、科学计算等功能集成到桌面应用中。无论是制作简单的小工具,还是开发专业的软件系统,PyQt5都提供了一套完整而强大的解决方案,是Python桌面应用开发中最受欢迎的框架之一。
3.界面效果简介
这款由你使用 PyQt5 开发的软件界面设计极具专业感与沉浸感。软件完美复刻并高度还原了腾讯旗下经典竞速网游《QQ飞车》的登录界面,在视觉呈现上表现出色,不仅保留了原版标志性的布局与功能分区,还通过现代化的 GUI 框架实现了流畅的交互体验。
在功能布局方面,该界面逻辑清晰,包含了账号输入框、登录按钮、以及针对游戏特定服务器(如电信区、联通区)的选择控件,甚至细致地集成了公告展示区域和协议勾选功能。这种设计展现了你在处理复杂布局管理、控件嵌套以及多状态交互(如记住账号、扫描登录等)方面的扎实能力。
此外,软件底部细致的设置选项,如窗口模式调整、分辨率与画质选择,进一步提升了其实用性与可配置性。整体而言,这不仅是一个对经典界面的致敬,更是一个展示 PyQt5 在构建复杂、高交互性桌面应用程序方面强大潜力的优秀范例,体现了开发者在 UI 审美与程序逻辑架构上的优秀水准。
PS:AI生图
三.展示
本次仅设计一个登录界面,下面使用一张gif展示最后界面设计效果,尽量还原了原版的细节效果。
PyQt5仿飞车登录界面
四.技术细节
1.游戏资源获取
本次软件界面之所以仿得很像的原因是博主拿到了登录界面的游戏资源,包括后面的动态视频、logo、贴图、banner数据等,游戏的登录界面资源位于**游戏根目录/LoaderNew/**目录下,我们直接使用这个目录作为界面资源,然后就是banner数据,通过抓包分析发现登录界面上的banner来自于内嵌网页,地址是https://speed.qq.com/home/client_advert.shtml,我们可以很简单地拿到banner和公告数据。
2.界面布局分析
我们使用不同的颜色展示了每个布局的关系,主界面主要使用了水平布局和垂直布局,按照“局部水平、整体垂直”的方案设计内部组件布局,换句话说,我们把界面给“拆”开了,从宏观到微观角度来分离整个界面的布局和组件,下面我细说:
整体背景是一个OpenCV读取播放的视频,主界面包括:顶部区域、中间内容区域、底部区域,顶部区域包含主操作按钮、以及窗口控制按钮区域、中间内容区域包含左侧空白区域、右侧登录面板区域、底部区域包含游戏logo、文案显示,下面着重说登录面板区域:
登录面板区域整体是垂直布局,主要包含顶部的banner区域和底部的登录信息、界面设置区域,banner采用直接切换,底部展示了文字的公告信息,每次向上滚动轮播,登录信息区域包含版本号展示标签、大区延迟展示、用户信息输入、协议勾选按钮、登录按钮、快捷按钮、窗口设置区域。
3.代码编写原则
这里说一下博主开发PyQt5软件系统的编写原则:博主会把项目代码分成多个包,每个包分离不同的功能,在项目依赖引入方面,我们使用了“先系统、然后PyQt5、最后自己包”的原则,在不同类型包的内部采用“金字塔”的引入写法,所以我们的代码相当整洁,新手也能很快上手,使用main.py作为软件界面入口。
4.组件化开发
所谓“组件化开发”的意思是将界面重复使用的组件封装起来,这样可以做到样式统一、风格一致,具体来说是:我们将基础组件封装到base_widgets.py里,将自定义组件放到custom_widgets.py里,将界面上的不同区域(比如顶部区域、底部区域、内容区域)放到custom_areas.py里,最后统一在main_page.py里调用,各个组件都有一个“set_data”函数,用于更新界面上展示的内容,用于data、view数据一致。
组件化开发还有一个好处就是:每个组件都可以单独调试运行,可以让开发者很方便地排查处理问题,比如我们这里单独调试一下登录区域,找到对应的类后修改入口就可以进行单独调试了。
组件化开发的核心就是“拆”,把复杂的拆成简单的,把组件多的拆成组件少的,组件化的目的就是简化界面效果,降低开发难度,下图为“大区选择”组件的单独调试效果图,
5.开发的乐趣
博主在开发这款软件系统的时候并没有感到倦累,因为开发一款自己喜欢的软件本身就是很享受的过程,虽然花费了博主5小时的时间,但是我能感受到开发的乐趣,并不会感觉到时间过得很慢,搭建一款自己喜欢的软件就好像一个厨子手里有丰富的食材,能够做出美味的食物!
前期博主做了充分的可行性调研,确定了本软件系统的主要难度,对于可能会比较困难的点进行了评估,实际开发难度比博主心里想的简单。
PS:AI生图
6.往期优秀作品
| 序号 | 项目名称 |
|---|---|
| 1 | python3GUI—基于PyQt5+YOLOv8+DeepSort的智慧行车可视化系统(详细介绍) |
| 2 | python3GUI–基于PyQt5+YOLOv8的智慧厨房系统(详细介绍) |
| 3 | python3GUI–基于YOLOv8深度学习的车牌识别系统(详细图文介绍) |
| 4 | 【AI加持】基于PyQt5+YOLOv8+DeepSeek的钢筋点数系统(详细介绍) |
| 5 | 【AI加持】基于PyQt5+YOLOv8+DeepSeek的水稻叶片疾病检测系统(详细介绍) |
| 6 | 【AI加持】基于PyQt5+YOLOv8+DeepSeek的摔倒行为检测系统(详细介绍) |
| 7 | 【AI加持】基于PyQt5+YOLOv8+DeepSeek的吸烟行为检测系统(详细介绍) |
| 8 | 【AI加持】基于PyQt5+YOLOv8+DeepSeek的输电隐患检测系统(详细介绍) |
| 9 | 【AI加持】基于PyQt5+YOLOv8+DeepSeek的结核杆菌检测系统(详细介绍) |
| 10 | python3GUI–基于PyQt5+DeepSort+YOLOv8智能人员入侵检测系统(详细图文介绍) |
| 11 | python3GUI–车牌、车牌颜色识别可视化系统 By:PyQt5(带文档) |
| 12 | python3GUI–智慧交通分析平台:By:PyQt5+YOLOv8(详细介绍) |
| 13 | python3GUI–基于YOLOv8的行车追踪与可视化分析系统 By:PyQt5(详细分享、配套文档) |
| 14 | python3GUI–网络流量分析系统 By:PyQt5(有配套文档) |
| 15 | python3GUI–基于深度学习的人脸识别管理系统(详细图文介绍) |
| 16 | 【AI加持】基于PyQt+YOLO+DeepSeek的口罩佩戴检测系统(详细介绍) |
| 16 | 【AI加持】基于PyQt+YOLO+DeepSeek的车型检测系统(详细介绍) |
| 17 | 【AI加持】基于PyQt+YOLO+DeepSeek的PCB缺陷检测系统(详细介绍) |
| 18 | 【AI加持】基于PyQt+YOLO+DeepSeek的布匹缺陷检测系统(详细介绍) |
| 19 | 【AI加持】基于PyQt+YOLO+DeepSeek的钢材焊接缺陷检测系统(详细介绍) |
| 20 | 【AI加持】基于PyQt+YOLO+DeepSeek的舌苔、舌象情况检测系统(详细介绍) |
| 21 | 【AI加持】基于PyQt+YOLO+DeepSeek的疟原虫检测系统(详细介绍) |
| 22 | 【AI赋能】基于PyQt+YOLO+DeepSeek的结直肠息肉检测系统(详细介绍) |
| 23 | 我用PyQt5手搓了一款小米车机软件系统(详细图文说明) |
五.总结
本次带大家设计了一个QQ飞车登录界面,详细和大家分享了我在软件开发过程中的思路和方法,博主把这些规则作为基本,本篇博客仅作为技术分享、交流!
