目录
前言:
可根据特定需求写PyQt+后端的程序,这个demo框架个人认为无论是初学还是老手,可以当做PyQt的架子使用,笔者在工作中积累了PyQt经验,由这个小项目搭建了一把,很过瘾。
目前开源的PyQt总感觉是小项目,架子太随意了,笔者平常也会写java,之前也用过flask,这算是一次融合把,把他应用到了PyQt开发中来。
背景:

应用:“手记”个人记账软件
简介:无论对于高校学生还是企业白领,生活记账的需求都普遍存在。纸笔记账的方式过于繁琐 ,一个方便智能,自动实现统计分析,引导合理消费的记账软件无疑将为使用者的生活带来便利,该款软件 追求的是用户界面美观、交互设计人性化、账目统计智能,直观,给用户带来贴心的感受。
主要功能和技术:
(1) 单笔(收入/支出) 记账, 包括记录金额、记录时间、记录分类、记录心情、记录备注; (2) 消费统计分析,包括分类饼状图、分类折线图、分类柱状图;
(3) 用户系统,包括用户密码 确认登录;
(4) 系统设置, 针对特定每日、每周、每年的消费限额进行设置, 可以通过软件来实现提醒用户 合理消费功能;
采用技术: Qt 界面开发, Sqlite 数据操作;
所用技术:
笔者作为一个工作中用PyQt5的员工对于PyQt6还是比较感兴趣的,实践证明二者有差异,认为不算小
ORM+PyQt6连接本地数据库,一个桌面端记账小程序
实现效果:
1-登录[注册不在展示]

2-账单页面

3-记账

4-消费统计分析

5-系统设置消费目标



信号与槽逻辑代码:


if __name__ == '__main__':
login = UiUserLoginDialog()
app = QApplication(sys.argv)
ini_window = loginWindow()
ini_window.show()
sys.exit(app.exec())
class registerWindow(QWidget, UiUserRegisterDialog):
def __init__(self,login_window):
super().__init__()
# login_window
self.login_window = login_window
self.setupUi(self)
self.ini_ui_config()
self.handle_buttons()
def ini_ui_config(self):
self.setWindowTitle("小熊手记软件-注册")
self.setWindowIcon(QIcon('./res/user/bear.png'))
# 禁止窗口拉伸
self.setFixedSize(self.width(), self.height())
def handle_buttons(self):
# 连接信号和槽
self.confirm_button.clicked.connect(self.register_logic)
self.handle_buttons()里面写的是关心信号绑定槽的处理,比如self.confirm_button的clicked信号触发后会执行register_logic槽函数,也就是用户注册账号的逻辑。
def register_logic(self):
"""
此处使用户进行注册
:return:
"""
username = self.username_line.text()
password = self.password_line.text()
if len(password) != 0 and len(password) != 0:
db_user = session.query(User).filter_by(username=username).all()
if len(db_user) == 0:
"""
说明输入无问题,可进行数据库插入
"""
user = User(username=username, password=password)
session.add(user)
session.commit()
query_user = session.query(User).filter_by(username=username,password=password).first()
user_id = query_user.id
target = ConsumeTarget(user_id=user_id,day_target=200,month_target=10000,year_target=200000)
session.add(target)
session.commit()
QMessageBox.question(self, '提示', '注册成功')
self.username_line.setText('')
self.password_line.setText('')
self.hide()
self.login_window.show()
else:
reply = QMessageBox.question(self, '提示', '用户名和密码输入非法,请重新录入')
self.username_line.setText('')
self.password_line.setText('')
else:
reply = QMessageBox.question(self, '提示', '用户名和密码输入不能为空,请重新录入')
self.username_line.setText('')
self.password_line.setText('')
源码获取
欢迎大家点赞、收藏、关注、评论、批评啦 、查看👇🏻👇🏻获取联系方式👇🏻👇🏻
3434

被折叠的 条评论
为什么被折叠?



