《嘉工资》--Python实现工资管理系统

本文介绍了使用Python结合PyQt5和MySQL实现的工资管理系统。主要包括登录注册、个人信息、部门、人事部和财务部等模块。部门模块展示了部门在职天数和状态,人事部模块根据职位和在职天数计算基本工资,财务部模块则负责工资条计算和扣税。代码中涉及到TableWidget的使用,以及多表查询的MySQL操作。
摘要由CSDN通过智能技术生成
这个项目会分模块分享,讲一下各个模块中遇到的问题以及运用到的技术

目录

登录注册模块

个人信息模块

部门模块

人事部模块

财务部模块

个人小结

部门模块

部门模块主要功能是显示部门的在职天数,以及状态,这里运行到了Pyqt5一下TableWidget的知识,其他所有部门都一样,还有下放工资条的功能。

        for i in range(0,len(self.a_info)):
            for j in range(0,len(self.a_info[0])+1):
                if j == 5:
                    self.combox.addItem('正常')
                    self.combox.addItem('请假')
                    self.combox.addItem('出差')
                    self.combox.setCurrentText('正常')
                    self.tableWidget.setCellWidget(i,j,self.combox)
                else:
                    temp_data = self.a_info[i][j]
                    data = QtWidgets.QTableWidgetItem(str(temp_data))
                    self.tableWidget.setItem(i,j,data)
                    self.tableWidget.item(i,j).setTextAlignment(Qt.AlignHCenter|Qt.AlignVCenter)
                    self.combox = QtWidgets.QComboBox()

TableWidget 显示信息,在最后一列添加Combox,用查询出来的元组的长度最为行,元组里的元组长度作为列。

class Bwindow(QtWidgets.QMainWindow,Ui_department_B):
    def __init__(self):
        super(Bwindow,self).__init__()
        self.setupUi(self)   
        self.dbase = database()
        self.month = datetime.date.today().month
        self.name_jobnum = self.dbase.select_person('B')
        for i in range(0,len(self.name_jobnum)):
            self.dbase.insert_departmentB(self.month,self.name_jobnum[i][0],self.name_jobnum[i][1],self.name_jobnum[i][2])
        self.b_info = self.dbase.select_departmentB()

        # TableWidget 显示数据
        # 如果很多数据 最后要分页处理
        for i in range(0,len(self.b_info)):
            for j in range(0,len(self.b_info[0])+1):
                if j == 5:
                    self.combox.addItem('正常')
                    self.combox.addItem('请假')
                    self.combox.addItem('出差')
                    self.combox.setCurrentText('正常')
                    self.tableWidget.setCellWidget(i,j,self.combox)
                else:
                    temp_data = self.b_info[i][j]
                    data = QtWidgets.QTableWidgetItem(str(temp_data))
                    self.tableWidget.setItem(i,j,data)
                    self.tableWidget.item(i,j).setTextAlignment(Qt.AlignHCenter|Qt.AlignVCenter)
                    self.combox = QtWidgets.QComboBox()

对,TableWidget 分页处理我还没有做,如何后期数据过多,需要做分页处理比较合理

人事部模块

人事部模块的主要功能是显示所有部门的所有信息,并根据职位、在职天数计算基本工资。我的方式是通过按键分开显示。

class Rwindow(QtWidgets.QMainWindow,Ui_departmentR):
    def __init__(self):
        super(Rwindow,self).__init__()
        self.setupUi(self)
        self.dbase = database()
        self.month = datetime.date.today().month
        self.name_jobnum = self.dbase.select_person('R')
        for i in range(0,len(self.name_jobnum)):
            self.dbase.insert_departmentR(self.month,self.name_jobnum[i][0],self.name_jobnum[i][1],self.name_jobnum[i][2])

        self.r_info = self.dbase.select_departmentR()
        self.a_info = self.dbase.select_departmentA()
        self.b_info = self.dbase.select_departmentB()
        self.c_info = self.dbase.select_departmentC()

        self.pushButton.clicked.connect(self.change_A)
        self.pushButton_2.clicked.connect(self.change_B)
        self.pushButton_3.clicked.connect(self.change_R)
        self.pushButton_4.clicked.connect(self.change_C)

        self.change_A()


    def change_A(self):
        self.pushButton.setStyleSheet("background-color: rgb(0, 170, 127);")
        self.pushButton_2.setStyleSheet("background-color: rgb(240, 240, 240);")
        self.pushButton_3.setStyleSheet("background-color: rgb(240, 240, 240);")
        self.pushButton_4.setStyleSheet("background-color: rgb(240, 240, 240);")
        self.tableWidget.setRowCount(len(self.a_info
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值