文章目录
- 一.前言
- 二.开发环境
- 三.预览
- 1.登录&注册
- 2.主界面
- 3.新增账单
- 1.当前日期
- 2.选择日期
- 3.添加成功
- 4.删除账单
- 4.筛选账单
- 5.账单数据汇总
- 1.日账单
- 2.月账单
- 3.年账单
- 四.设计心得
- 1.项目代码结构
- 2.UI设计概览
- 3.UI设计详细
- 1.登录注册界面
- 2.主窗口
- 3.添加新账单界面
- 4.数据库表设计
- 1.用户表(Users)
- 2.账单表(Bills)
- 五.总结
文件大小:19.94M
下载体验点我
如果安装后打不开,多半是权限问题,请使用管理员运行或者别装到C盘!
一.前言
本次使用PyQt5开发一款记账助手,支持登录注册、多账号、账单类型筛选、数据持久化、可视化,Let’s go
二.开发环境
本项目采用Python语言及第三方库进行设计与开发,项目基于PyQt5进行构建,其软件开发环境为:
PyCharm 2021.3
Python 3.8
Windows 11
三.预览
1.登录&注册
软件启动后进入软件主界面,需要先登录。
没有账号需要先注册
2.主界面
登陆成功后是我们软件的主界面,详细展示每一笔的收支情况以及收支、结余汇总
3.新增账单
我们需要选择账单日期、类型、输入金额
1.当前日期
默认选择当前日期
2.选择日期
我们可以从日历中选择指定日期,选择的日期会展示到界面上。
3.添加成功
添加成功后会给予提示
4.删除账单
我们可以右击某一条目或者拖动鼠标选择多个条目进行账单的删除,删除之前系统会和用户确认,删除完成后会刷新数据。
4.筛选账单
我们可以点击左上角的“账单类型”对账单进行筛选,主要分为“收入”和“支出”及“汇总”,选择某一项之后会勾选。这里我切换了另一个账号来演示。
5.账单数据汇总
汇总维度分为:日、月、年,分别汇总收支情况,使用“饼图”展示每一部分占比。
1.日账单
2.月账单
3.年账单
四.设计心得
1.项目代码结构
本项目以main.py作为入口,执行python main.py即可直接启动整个项目。
2.UI设计概览
本次开发的软件为多窗口应用,包括:
- 登录注册界面
- 主窗口
- 添加新账单界面
以上界面均为设计师设计,QT设计师非常适合敏捷开发。
3.UI设计详细
下面我截图展示所有UI界面
1.登录注册界面
login.ui
2.主窗口
home_ui.ui
3.添加新账单界面
new_account_ui.ui
4.数据库表设计
本次数据持久化采用存储数据库的方式,数据库为文件型数据库:sqlite3,
设计了两个库表,分别是:
1.用户表(Users)
用于存储用户的登录注册信息,每次用户登陆成功后更新上次登录时间,建表语句如下:
CREATE TABLE Users (
id INTEGER PRIMARY KEY AUTOINCREMENT, -- 用户ID,主键,自增
username TEXT NOT NULL UNIQUE, -- 用户名,不能为空且必须唯一
password TEXT NOT NULL, -- 密码,不能为空(注意:实际存储时应加密)
create_time TEXT, -- 创建时间,默认值为当前时间戳
last_login_time Int DEFAULT 0 -- 上次登录时间,可以为空
);
数据-览
2.账单表(Bills)
账单表存储多个字段的数据,详细记录每笔账单,可以与用户表做关联,建表语句如下:
CREATE TABLE Bills (
id INTEGER PRIMARY KEY AUTOINCREMENT, -- 主键,自增
create_time TEXT , -- 创建时间,默认值为当前时间戳
bill_type TEXT NOT NULL, -- 账单类型,不能为空
income_or_expense TEXT NOT NULL CHECK (income_or_expense IN ('+', '-')), -- 收支,不能为空,并且只能是'+'或'-'
amount TEXT NOT NULL, -- 金额,不能为空
user_id INTEGER NOT NULL, -- 用户ID,不能为空(假设用户ID是必填项)
note TEXT -- 备注,可以为空
);
数据-览
五.总结
本次使用PyQt5开发了一款记账软件,这个项目非常适合学生来学习、练习数据库、PyQt。