PyQt6开发一个“手记”个人记账软件

目录

前言:

背景:

所用技术:

实现效果:

1-登录[注册不在展示]

2-账单页面

3-记账

4-消费统计分析

5-系统设置消费目标

 信号与槽逻辑代码:

源码获取


前言:

可根据特定需求写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('')

源码获取

欢迎大家点赞、收藏、关注、评论、批评啦 、查看👇🏻👇🏻获取联系方式👇🏻👇🏻

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员象漂亮

竭诚为您服务!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值