python / pyside6 + pymysql 实现简单的个人资金管理系统


功能需求:使用者只需输入每笔进出账,程序可以自动以天、周、月、季度 以及 年 为单位统计数据,并展现给使用者。

用到的python第三方库

命令行执行一下命令,安装第三方库:

pip install pyside6
pip install pymysql

数据库建表

我这里使用的是MySQL。

创建数据库“mnyman”:

create database mnyman;
use mnyman;

创建类型表:

create table type (
    type VARCHAR(30) primary key 
);

创建账单表:

create table eandi (
    dt VARCHAR(11),
    amofmny NUMERIC(9,2),
    notes VARCHAR(50),
    type VARCHAR(30),
    crtmn NUMERIC(14,2),
    foreign key(type) references type(type) on delete restrict
);

创建天表:

CREATE TABLE days (
    dt VARCHAR(11) PRIMARY KEY,
    dttli NUMERIC(9,2),
    idetails varchar(200),
    dttle NUMERIC(9,2),
    edetails varchar(200)
);

创建周表:

create table weeks (
    wkinfo varchar(23) PRIMARY KEY,
    wttle NUMERIC(9,2),
    wttli NUMERIC(9,2),
    eset VARCHAR(100),
    emset VARCHAR(100),
    iset VARCHAR(100),
    imset VARCHAR(100)
);

创建月表:

create table months (
    mno VARCHAR(8) PRIMARY KEY,
    mttle NUMERIC(9,2),
    mttli NUMERIC(9,2),
    eset VARCHAR(100),
    emset VARCHAR(100),
    iset VARCHAR(100),
    imset VARCHAR(100)
);

创建季度表:

CREATE TABLE quarters (
    qno VARCHAR(8) PRIMARY KEY,
    qttle NUMERIC(9,2),
    qttli NUMERIC(9,2),
    eset VARCHAR(100),
    emset VARCHAR(100),
    iset VARCHAR(100),
    imset VARCHAR(100)
);

创建年表:

CREATE TABLE years (
    yno VARCHAR(5) PRIMARY KEY,
    yttle NUMERIC(9,2),
    yttli NUMERIC(9,2),
    eset VARCHAR(100),
    emset VARCHAR(100),
    iset VARCHAR(100),
    imset VARCHAR(100)
);

代码部分

连接数据库:

def cnctdb(self):
    db = pymysql.connect(host="localhost", user="root", password="", charset="utf8")    # password="",引号里面填写登录数据库的密码
    csr = db.cursor()
    return db, csr

关闭数据库:

def closedb(self, csr, db):
    csr.close()
    db.close()

提示弹窗:

def msbox(self, wintitle, text):
    tip = QMessageBox()
    tip.setWindowTitle(wintitle)
    tip.setText(text)
    tip.exec()

填充表的数据:

def setTable(self, table, tul):   # 表名,tul元组或列表
    table.setRowCount(len(tul))
    x = 0
    for i in tul:
        y = 0
        for j in i[0:len(i)]:
            con = str(j)
            table.setItem(x, y, QTableWidgetItem(con))
            y += 1
        x += 1



全部代码:

from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
    QMetaObject, QObject, QPoint, QRect,
    QSize, QTime, QUrl, Qt)
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
    QFont, QFontDatabase, QGradient, QIcon,
    QImage, QKeySequence, QLinearGradient, QPainter,
    QPalette, QPixmap, QRadialGradient, QTransform)
from PySide6.QtWidgets import (QApplication, QComboBox, QFrame, QHeaderView,
    QLabel, QLineEdit, QPushButton, QSizePolicy,
    QTabWidget, QTableWidget, QTableWidgetItem, QWidget)
import sys
import re
from decimal import Decimal
from PySide6 import QtWidgets
import pymysql
from PySide6.QtWidgets import QMessageBox


class Ui_mnyman(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.activeEvent()

    def activeEvent(self):
        self.pushButton.clicked.connect(self.doNewType)
        self.pushButton_2.clicked.connect(self.showTypes)
        self.pushButton_3.clicked.connect(self.doInsertItem)
        self.pushButton_4.clicked.connect(self.showdetails)
        self.pushButton_5.clicked.connect(self.insertDay)
        self.pushButton_6.clicked.connect(self.showdays)
        self.pushButton_9.clicked.connect(self.searchTheType)
        self.pushButton_7.clicked.connect(self.insertWeeks)
        self.pushButton_11.clicked.connect(self.showdetailsofyear)
        self.pushButton_12.clicked.connect(self.showThedays)
        self.pushButton_8.clicked.connect(self.showWeeks)
        self.pushButton_10.clicked.connect(self.insertMonth)
        self.pushButton_25.clicked.connect(self.showMonths)
        self.pushButton_26.clicked.connect(self.insertQuarter)
        self.pushButton_27.clicked.connect(self.showquarters)
        self.pushButton_29.clicked.connect(self.insertYear)
        self.pushButton_28.clicked.connect(self.showYears)
        self.pushButton_13.clicked.connect(self.deletetype)
        self.pushButton_14.clicked.connect(self.deletedayItems)
        self.pushButton_39.clicked.connect(self.deleteTheDay)
        self.pushButton_40.clicked.connect(self.deleteYear)
        self.pushButton_42.clicked.connect(self.deleteWeek)
        self.pushButton_43.clicked.connect(self.deleteMonth)
        self.pushButton_44.clicked.connect(self.deleteQuarter)
        self.pushButton_41.clicked.connect(self.deleteTheItem)

    def cnctdb(self):
        db = pymysql.connect(host="localhost", user="root", password="", charset="utf8")    # password="",引号里面填写登录数据库的密码
        csr = db.cursor()
        return db, csr

    def closedb(self, csr, db):
        csr.close()
        db.close()

    def msbox(self, wintitle, text):
        tip = QMessageBox()
        tip.setWindowTitle(wintitle)
        tip.setText(text)
        tip.exec()

    def setTable(self, table, tul):
        table.setRowCount(len(tul))
        x = 0
        for i in tul:
            y = 0
            for j in i[0:len(i)]:
                con = str(j)
                table.setItem(x, y, QTableWidgetItem(con))
                y += 1
            x += 1

    def newType(self, type):
        db, csr = self.cnctdb()
        csr.execute("use mnyman;")
        csr.execute("insert into type values (\"{}\");".format(type))
        # self.writeToElog("insert into type values (\"{}\");".format(type))
        db.commit()
        self.closedb(csr, db)

    def doNewType(self):
        try:
            if self.lineEdit.text()=="":
                self.msbox("插入错误","类型不能为空!")
            else:
                self.newType(self.lineEdit.text())
                self.msbox("插入成功", "成功插入该类型!")
        except pymysql.err.IntegrityError:
            self.msbox("插入错误", "已经存在该类型!")

    def showTypes(self):
        db, csr = self.cnctdb()
        csr.execute("use mnyman")
        csr.execute("select * from type;")
        types = csr.fetchall()
        self.setTable(self.tableWidget, types)

    def deletetype(self):
        db, csr = self.cnctdb()
        csr.execute("use mnyman")
        try:
            csr.execute("select type from type where type=\"{}\";".format(self.lineEdit_16.text()))
            result = csr.fetchall()
            if result:
                csr.execute("delete from type where type=\"{}\";".format(self.lineEdit_16.text()))
                db.commit()
                self.msbox("删除成功","成功删除该类型!")
            else:
                self.msbox("删除错误","没有该类型!")
        except pymysql.err.IntegrityError:
            self.msbox("删除错误","该类型无法删除,因为有其他表将其作为外键参考!")
        self.closedb(db,csr)

    def doInsertItem(self):
        db,csr = self.cnctdb()
        csr.execute("use mnyman")
        csr.execute("select * from eandi;")
        res = csr.fetchall()
        if res:
            if self.lineEdit_2.text() == "":
                self.msbox("插入错误", "年份不能为空!")
            elif len(self.lineEdit_2.text()) < 4:
                self.msbox("插入错误", "年份的位数必须大于等于4!")
            elif int(self.lineEdit_6.text()) < 1 or int(self.lineEdit_6.text()) > 12:
                self.msbox("插入错误", "月份必须为1~12!")
            elif int(self.lineEdit_7.text()) < 1 or int(self.lineEdit_7.text()) > 31:
                self.msbox("插入错误", "日期必须为1~31!")
            else:
                if len(self.lineEdit_6.text()) == 1:
                    if len(self.lineEdit_7.text()) == 1:
                        self.insertItem(
                            self.lineEdit_2.text() + ".0" + self.lineEdit_6.text() + ".0" + self.lineEdit_7.text(),
                            float(self.lineEdit_3.text()), self.lineEdit_4.text(),
                            self.lineEdit_5.text())
                    else:
                        self.insertItem(
                            self.lineEdit_2.text() + ".0" + self.lineEdit_6.text() + "." + self.lineEdit_7.text(),
                            float(self.lineEdit_3.text()), self.lineEdit_4.text(),
                            self.lineEdit_5.text())
                else:
                    if len(self.lineEdit_7.text()) == 1:
                        self.insertItem(
                            self.lineEdit_2.text() + "." + self.lineEdit_6.text() + ".0" + self.lineEdit_7.text(),
                            float(self.lineEdit_3.text()), self.lineEdit_4.text(),
                            self.lineEdit_5.text())
                    else:
                        self.insertItem(
                            self.lineEdit_2.text() + "." + self.lineEdit_6.text() + "." + self.lineEdit_7.text(),
                            float(self.lineEdit_3.text()), self.lineEdit_4.text(),
                            self.lineEdit_5.text())
        else:
            if len(self.lineEdit_6.text()) == 1:
                if len(self.lineEdit_7.text()) == 1:
                    self.insertFirstItem(
                        self.lineEdit_2.text() + ".0" + self.lineEdit_6.text() + ".0" + self.lineEdit_7.text(),
                        float(self.lineEdit_3.text()), self.lineEdit_4.text(),
                        self.lineEdit_5.text())
                else:
                    self.insertFirstItem(
                        self.lineEdit_2.text() + ".0" + self.lineEdit_6.text() + "." + self.lineEdit_7.text(),
                        float(self.lineEdit_3.text()), self.lineEdit_4.text(),
                        self.lineEdit_5.text())
            else:
                if len(self.lineEdit_7.text()) == 1:
                    self.insertFirstItem(
                        self.lineEdit_2.text() + "." + self.lineEdit_6.text() + ".0" + self.lineEdit_7.text(),
                        float(self.lineEdit_3.text()), self.lineEdit_4.text(),
                        self.lineEdit_5.text())
                else:
                    self.insertFirstItem(
                        self.lineEdit_2.text() + "." + self.lineEdit_6.text() + "." + self.lineEdit_7.text(),
                        float(self.lineEdit_3.text()), self.lineEdit_4.text(),
                        self.lineEdit_5.text())

    def insertFirstItem(self,date,mny,note,type):
        db,csr = self.cnctdb()
        csr.execute("use mnyman")
        try:
            csr.execute("insert into eandi values (\"{}\",{},\"{}\",\"{}\",{});".format(date,mny,note,type,mny))
            self.msbox("插入成功", "您已成功插入该项!")
        except pymysql.err.DataError:
            self.msbox("插入错误","金额太大,超出规定范围!金额数据整数部分不得大于7位数!")
        db.commit()
        self.closedb(csr,db)

    def deleteTheItem(self):
        if self.lineEdit_55.text() == "":
            self.msbox("插入错误", "年份不能为空!")
        elif len(self.lineEdit_55.text()) < 4:
            self.msbox("插入错误", "年份的位数必须大于等于4!")
        elif int(self.lineEdit_51.text()) < 1 or int(self.lineEdit_51.text()) > 12:
            self.msbox("插入错误", "月份必须为1~12!")
        elif int(self.lineEdit_54.text()) < 1 or int(self.lineEdit_54.text()) > 31:
            self.msbox("插入错误", "日期必须为1~31!")
        else:
            if len(self.lineEdit_51.text()) == 1:
                if len(self.lineEdit_54.text()) == 1:
                    self.doDeleteTheItem(
                        self.lineEdit_55.text() + ".0" + self.lineEdit_51.text() + ".0" + self.lineEdit_54.text(),self.lineEdit_52.text(),self.lineEdit_56.text(),self.lineEdit_53.text(),self.lineEdit_62.text())
                else:
                    self.doDeleteTheItem(
                        self.lineEdit_55.text() + ".0" + self.lineEdit_51.text() + "." + self.lineEdit_54.text(),self.lineEdit_52.text(),self.lineEdit_56.text(),self.lineEdit_53.text(),self.lineEdit_62.text())
            else:
                if len(self.lineEdit_54.text()) == 1:
                    self.doDeleteTheItem(
                        self.lineEdit_55.text() + "." + self.lineEdit_51.text() + ".0" + self.lineEdit_54.text(),self.lineEdit_52.text(),self.lineEdit_56.text(),self.lineEdit_53.text(),self.lineEdit_62.text())
                else:
                    self.doDeleteTheItem(
                        self.lineEdit_55.text() + "." + self.lineEdit_51.text() + "." + self.lineEdit_54.text(),self.lineEdit_52.text(),self.lineEdit_56.text(),self.lineEdit_53.text(),self.lineEdit_62.text())

    def doDeleteTheItem(self,dt,amofmny,notes,type,crtmn):
        db, csr = self.cnctdb()
        csr.execute("use mnyman")
        csr.execute("select * from eandi where dt=\"{}\" and amofmny={} and notes=\"{}\" and type=\"{}\" and crtmn={};".format(dt,float(amofmny),notes,type,float(crtmn)))
        result = csr.fetchall()
        if result:
            csr.execute("delete from eandi where dt=\"{}\" and amofmny={} and notes=\"{}\" and type=\"{}\" and crtmn={};".format(dt,float(amofmny),notes,type,float(crtmn)))
            self.msbox("删除成功","成功删除该项数据!")
        else:
            self.msbox("删除错误","不存在该项数据!")
        db.commit()
        self.closedb(db, csr)

    def insertItem(self, date, mny, note, type):
        db, csr = self.cnctdb()
        csr.execute("use mnyman;")
        try:
            csr.execute("select crtmn from eandi;")
            eandis = csr.fetchall()
            crtmny = float(eandis[len(eandis) - 1][0])
            crtmny = crtmny + mny
            csr.execute(
                "insert into eandi values (\"{}\",{},\"{}\",\"{}\",{});".format(date, mny, note, type, crtmny))
            self.msbox("插入成功", "您已成功插入该项!")
        except pymysql.err.DataError:
            self.msbox("插入错误", "金额太大,超出规定范围!金额数据整数部分不得大于7位数!")
        # self.writeToElog(
        #     "insert into eandi values (\"{}\",{},\"{}\",\"{}\",{});".format(date, mny, note, type, crtmny))
        db.commit()
        self.closedb(csr, db)

    def deletedayItems(self):
        if self.lineEdit_20.text() == "":
            self.msbox("插入错误", "年份不能为空!")
        elif len(self.lineEdit_20.text()) < 4:
            self.msbox("插入错误", "年份的位数必须大于等于4!")
        elif int(self.lineEdit_19.text()) < 1 or int(self.lineEdit_19.text()) > 12:
            self.msbox("插入错误", "月份必须为1~12!")
        elif int(self.lineEdit_21.text()) < 1 or int(self.lineEdit_21.text()) > 31:
            self.msbox("插入错误", "日期必须为1~31!")
        else:
            if len(self.lineEdit_19.text()) == 1:
                if len(self.lineEdit_21.text()) == 1:
                    self.deleteItems(
                        self.lineEdit_20.text() + ".0" + self.lineEdit_19.text() + ".0" + self.lineEdit_21.text())
                else:
                    self.deleteItems(
                        self.lineEdit_20.text() + ".0" + self.lineEdit_19.text() + "." + self.lineEdit_21.text())
            else:
                if len(self.lineEdit_21.text()) == 1:
                    self.deleteItems(
                        self.lineEdit_20.text() + "." + self.lineEdit_19.text() + ".0" + self.lineEdit_21.text())
                else:
                    self.deleteItems(
                        self.lineEdit_20.text() + "." + self.lineEdit_19.text() + "." + self.lineEdit_21.text())

    def deleteItems(self, dt):
        db, csr = self.cnctdb()
        csr.execute("use mnyman")
        csr.execute("select * from eandi where dt=\"{}\";".format(dt))
        result = csr.fetchall()
        if result:
            csr.execute("delete from eandi where dt=\"{}\";".format(dt))
            self.msbox("删除成功", "成功删除该天所有数据项!")
        else:
            self.msbox("删除错误","不存在该天的数据!")
        db.commit()
        self.closedb(db, csr)

    def showdetails(self):
        db, csr = self.cnctdb()
        csr.execute("use mnyman")
        csr.execute("select * from eandi;")
        details = csr.fetchall()
        self.setTable(self.tableWidget_2, details)

    def insertDay(self):
        if self.lineEdit_8.text() == "" or self.lineEdit_9.text() == "" or self.lineEdit_10.text() == "":
            self.msbox("日期错误", "日期不能为空!")
        else:
            if len(self.lineEdit_9.text()) == 1:
                if len(self.lineEdit_10.text()) == 1:
                    dt = self.lineEdit_8.text() + ".0" + self.lineEdit_9.text() + ".0" + self.lineEdit_10.text()
                else:
                    dt = self.lineEdit_8.text() + ".0" + self.lineEdit_9.text() + "." + self.lineEdit_10.text()
            else:
                if len(self.lineEdit_7.text()) == 1:
                    dt = self.lineEdit_8.text() + "." + self.lineEdit_9.text() + ".0" + self.lineEdit_10.text()
                else:
                    dt = self.lineEdit_8.text() + "." + self.lineEdit_9.text() + "." + self.lineEdit_10.text()
            db, csr = self.cnctdb()
            csr.execute("use mnyman")
            try:
                csr.execute("select * from eandi where dt=\"{}\"".format(dt))
                details = csr.fetchall()
                # print(details)
                day = []
                day.append(dt)
                expenditure = 0
                eptdetails = ""
                income = 0
                icmdetails = ""
                for j in details:
                    if float(j[1]) < 0:
                        expenditure += float(j[1])
                        eptdetails += str(j[1]) + "元"
                        eptdetails += j[2] + ";" + "\n"
                    else:
                        income += float(j[1])
                        icmdetails += str(j[1]) + "元"
                        icmdetails += j[2] + ";" + "\n"
                day.append(expenditure)
                # print(eptdetails)
                eptdetails = eptdetails[0:len(eptdetails) - 1]
                icmdetails = icmdetails[0:len(icmdetails) - 1]
                day.append(eptdetails)
                day.append(income)
                day.append((icmdetails))
                # print(day)
                csr.execute(
                    "insert into days values (\"{}\",{},\"{}\",{},\"{}\")".format(day[0], day[1], day[2], day[3],
                                                                                  day[4]))
                db.commit()
                self.msbox("插入成功", "成功插入该天!")
            except pymysql.err.IntegrityError:
                self.msbox("插入错误","已经存在该天!")
            self.closedb(csr, db)

    def showdays(self):
        db, csr = self.cnctdb()
        csr.execute("use mnyman")
        csr.execute("select * from days;")
        days = csr.fetchall()
        if days:
            self.setTable(self.tableWidget_3, days)
        else:
            self.setTable(self.tableWidget_3, [])
            self.msbox("查询为空", "没有查询到任何一天的账单!")
        self.closedb(csr, db)

    def showThedays(self):
        db, csr = self.cnctdb()
        csr.execute("use mnyman")
        if self.lineEdit_14.text() == "":
            self.msbox("查询错误", "年份不能为空!")
        elif len(self.lineEdit_14.text()) < 4:
            self.msbox("查询错误", "年份必须的位数必须大于等于4!")
        else:
            csr.execute("select * from days;")
            details = csr.fetchall()
            sortedDetails = []
            for i in details:
                if i[0].startswith(self.lineEdit_14.text()):
                    sortedDetails.append(i)
            if sortedDetails:
                self.setTable(self.tableWidget_9, sortedDetails)
            else:
                self.setTable(self.tableWidget_9, sortedDetails)
                self.msbox("查询为空", "该年份没有账单!")
            self.closedb(csr, db)

    def deleteTheDay(self):
        if self.lineEdit_49.text() == "":
            self.msbox("插入错误", "年份不能为空!")
        elif len(self.lineEdit_49.text()) < 4:
            self.msbox("插入错误", "年份的位数必须大于等于4!")
        elif int(self.lineEdit_47.text()) < 1 or int(self.lineEdit_47.text()) > 12:
            self.msbox("插入错误", "月份必须为1~12!")
        elif int(self.lineEdit_48.text()) < 1 or int(self.lineEdit_48.text()) > 31:
            self.msbox("插入错误", "日期必须为1~31!")
        else:
            if len(self.lineEdit_47.text()) == 1:
                if len(self.lineEdit_48.text()) == 1:
                    self.doDeleteTheDay(
                        self.lineEdit_49.text() + ".0" + self.lineEdit_47.text() + ".0" + self.lineEdit_48.text())
                else:
                    self.doDeleteTheDay(
                        self.lineEdit_49.text() + ".0" + self.lineEdit_47.text() + "." + self.lineEdit_48.text())
            else:
                if len(self.lineEdit_48.text()) == 1:
                    self.doDeleteTheDay(
                        self.lineEdit_49.text() + "." + self.lineEdit_47.text() + ".0" + self.lineEdit_48.text())
                else:
                    self.doDeleteTheDay(
                        self.lineEdit_49.text() + "." + self.lineEdit_47.text() + "." + self.lineEdit_48.text())

    def doDeleteTheDay(self, dt):
        db, csr = self.cnctdb()
        csr.execute("use mnyman")
        csr.execute("select * from days where dt=\"{}\";".format(dt))
        result = csr.fetchall()
        if result:
            csr.execute("delete from days where dt=\"{}\";".format(dt))
            self.msbox("删除成功","成功删除该天的数据!")
        else:
            self.msbox("删除错误","不存在该天的数据!")
        db.commit()
        self.closedb(db, csr)

    def searchTheType(self):
        db, csr = self.cnctdb()
        csr.execute("use mnyman")
        csr.execute("select dt,amofmny,notes,type from eandi where type=\"{}\"".format(self.lineEdit_17.text()))
        items = csr.fetchall()
        if items:
            self.setTable(self.tableWidget_5, items)
        else:
            self.msbox("查询错误", "没有查询到指定类型!")
        self.closedb(csr, db)

    def showdetailsofyear(self):
        db, csr = self.cnctdb()
        csr.execute("use mnyman")
        if self.lineEdit_18.text() == "":
            self.msbox("查询错误", "年份不能为空!")
        elif len(self.lineEdit_18.text()) < 4:
            self.msbox("查询错误", "年份的位数必须大于等于4!")
        else:
            csr.execute("select * from eandi;")
            details = csr.fetchall()
            sortedDetails = []
            for i in details:
                if i[0].startswith(self.lineEdit_18.text()):
                    sortedDetails.append(i)
            if sortedDetails:
                self.setTable(self.tableWidget_8, sortedDetails)
            else:
                self.setTable(self.tableWidget_8, sortedDetails)
                self.msbox("查询为空", "该年份没有账单!")
            self.closedb(csr, db)

    def getDt(self, year, month):
        leapYear = (31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
        notleapYear = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
        if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
            return leapYear[month - 1]
        else:
            return notleapYear[month - 1]

    def cpte(self, date, a):
        result = date.split(".")
        days = self.getDt(int(result[0]), int(result[1]))
        li = []
        s = ""
        if result[1] == "12":
            if int(result[2]) + a > days:
                for i in range(0, a):
                    if int(result[2]) + i > days:
                        s = str(int(result[0]) + 1) + "." + "1" + "." + str((int(result[2]) + i) % days)
                        li.append(s)
                    else:
                        s = result[0] + "." + result[1] + "." + str(int(result[2]) + i)
                        li.append(s)
                return li
            else:
                for i in range(0, a):
                    s = result[0] + "." + result[1] + "." + str(int(result[2]) + i)
                    li.append(s)
                return li
        else:
            if int(result[2]) + a > days:
                for i in range(0, a):
                    if int(result[2]) + i > days:
                        s = result[0] + "." + str(int(result[1]) + 1) + "." + str((int(result[2]) + i) % days)
                        li.append(s)
                    else:
                        s = result[0] + "." + result[1] + "." + str(int(result[2]) + i)
                        li.append(s)
                return li
            else:
                for i in range(0, a):
                    s = result[0] + "." + result[1] + "." + str(int(result[2]) + i)
                    li.append(s)
                return li

    def getinfor(self, items):
        totalexpanditure = 0
        totalincome = 0
        eli = []
        ili = []
        for i in items:
            if i[0] > 0:
                totalincome += i[0]
                ili.append(i[1])
            else:
                totalexpanditure += i[0]
                eli.append(i[1])
        est = set(eli)
        eli = list(est)
        totaleli = []
        for i in range(0, len(eli)):
            totaleli.append(0)
        ist = set(ili)
        ili = list(ist)
        totalili = []
        for i in range(0, len(ili)):
            totalili.append(0)
        for i in items:
            ex = 0
            ix = 0
            for j in eli:
                if j == i[1]:
                    totaleli[ex] += i[0]
                ex += 1
            for j in ili:
                if j == i[1]:
                    totalili[ix] += i[0]
                ix += 1
        return totalexpanditure, totalincome, eli, totaleli, ili, totalili

    def getnewDays(self,eptdays):
        sptdays = eptdays.split('.')
        if len(sptdays[1]) == 1:
            if len(sptdays[2]) == 1:
                dt1 = sptdays[0] + ".0" + sptdays[1] + ".0" + sptdays[2]
            else:
                dt1 = sptdays[0] + ".0" + sptdays[1] + "." + sptdays[2]
        else:
            if len(sptdays[2]) == 1:
                dt1 = sptdays[0] + "." + sptdays[1] + ".0" + sptdays[2]
            else:
                dt1 = sptdays[0] + "." + sptdays[1] + "." + sptdays[2]
        return dt1

    def insertWeeks(self):
        if self.lineEdit_11.text() == "" or self.lineEdit_12.text() == "" or self.lineEdit_13.text() == "":
            self.msbox("日期错误", "日期不能为空!")
        else:
            try:
                dtstart = self.lineEdit_12.text() + "." + self.lineEdit_11.text() + "." + self.lineEdit_13.text()
                dys = self.cpte(dtstart, 7)
                days = []
                for i in dys:
                    days.append(self.getnewDays(i))
                # print(days)
                db, csr = self.cnctdb()
                csr.execute("use mnyman")
                csr.execute(
                    "select amofmny,type from eandi where dt=\"{}\" or dt=\"{}\" or dt=\"{}\" or dt=\"{}\" or dt=\"{}\" or dt=\"{}\" or dt=\"{}\";".format(
                        days[0], days[1], days[2], days[3], days[4], days[5], days[6]))
                items = csr.fetchall()
                # print(items)
                totalexpanditure, totalincome, eli, totaleli, ili, totalili = self.getinfor(items)
                dt = days[0] + "~" + days[6]
                eeli = []
                iili = []
                for i in totaleli:
                    eeli.append(float(i))
                for i in totalili:
                    iili.append(float(i))
                csr.execute("insert into weeks values (\"{}\", {}, {}, \"{}\", \"{}\", \"{}\", \"{}\");".format(dt,
                                                                                                                totalexpanditure,
                                                                                                                totalincome,
                                                                                                                eli,
                                                                                                                eeli,
                                                                                                                ili,
                                                                                                                iili))
                db.commit()
                self.msbox("插入成功", "成功插入该周数据!")
                self.closedb(csr, db)
            except pymysql.err.IntegrityError:
                self.msbox("插入错误", "已经存在该周!")

    def showWeeks(self):
        db, csr = self.cnctdb()
        csr.execute("use mnyman")
        csr.execute("select * from weeks;")
        weeks = csr.fetchall()
        self.closedb(csr, db)
        # print(weeks)
        li = []
        pattern = re.compile("\'.*\'")
        ptn = re.compile("\d*\.\d*")
        for i in weeks:
            item = []
            item.append(i[0])
            item.append(i[1])
            item.append(round(i[1] / 7 * 100) / 100)
            item.append(i[2])
            item.append(round(i[2] / 7 * 100) / 100)
            s = """

            """
            s += i[3].replace(',', '\n')
            typelist = pattern.findall(s)
            typee = []
            for j in typelist:
                typee.append(j.replace('\'', ''))
            # li.append(item)
            s = """

            """
            s += i[4].replace(',', '\n')
            elist = ptn.findall(s)
            expenditurelist = []
            for j in elist:
                expenditurelist.append(Decimal.from_float(float(j.replace('\'', ''))))
            s = """

            """
            s += i[5].replace(',', '\n')
            type = pattern.findall(s)
            typei = []
            for j in type:
                typei.append(j.replace('\'', ''))
            s = """

            """
            s += i[6].replace(',', '\n')
            ty = ptn.findall(s)
            incomelist = []
            for j in ty:
                incomelist.append(Decimal.from_float(float(j.replace('\'', ''))))
            exproportion = ""
            inproportion = ""
            index = 0
            for j in typee:
                exproportion += j + " 占比: "
                a = str(-round(expenditurelist[index] / Decimal.from_float(float(i[1])) * 10000) / 100) + "%"
                exproportion += a + '\n'
                index += 1
            index = 0
            for j in typei:
                inproportion += j + " 占比: "
                a = str(round(incomelist[index] / Decimal.from_float(float(i[2])) * 10000) / 100) + "%"
                inproportion += a + '\n'
                index += 1
            exproportion = exproportion[0:len(exproportion) - 1]
            inproportion = inproportion[0:len(inproportion) - 1]
            item.append(exproportion)
            item.append(inproportion)
            li.append(item)
        self.setTable(self.tableWidget_4, li)

    def deleteWeek(self):
        if self.lineEdit_59.text() == "" or self.lineEdit_58.text() == "" or self.lineEdit_57.text() == "":
            self.msbox("日期错误", "日期不能为空!")
        else:
            dtstart = self.lineEdit_59.text() + "." + self.lineEdit_58.text() + "." + self.lineEdit_57.text()
            dys = self.cpte(dtstart, 7)
            dt = self.getnewDays(dys[0])+"~"+self.getnewDays(dys[6])
            db, csr = self.cnctdb()
            csr.execute("use mnyman")
            csr.execute("select * from weeks where wkinfo=\"{}\";".format(dt))
            result = csr.fetchall()
            if result:
                csr.execute("delete from weeks where wkinfo=\"{}\";".format(dt))
                self.msbox("删除成功","成功删除该周的数据!")
            else:
                self.msbox("删除失败","不存在该周!")
            db.commit()
            self.closedb(db,csr)

    def insertMonth(self):
        if self.lineEdit_15.text() == "":
            self.msbox("插入错误", "年份不能为空!")
        elif len(self.lineEdit_15.text()) < 4:
            self.msbox("插入错误", "年份的位数必须大于等于4!")
        else:
            try:
                db, csr = self.cnctdb()
                csr.execute("use mnyman")
                dt = self.lineEdit_15.text() + "." + self.comboBox_2.currentText() + ".1"
                a = self.getDt(int(self.lineEdit_15.text()), int(self.comboBox_2.currentText()))
                dys = self.cpte(dt, a)
                days = []
                for i in dys:
                    days.append(self.getnewDays(i))
                li = []
                items = []
                for i in days:
                    csr.execute("select amofmny,type from eandi where dt=\"{}\"".format(i))
                    results = csr.fetchall()
                    li.append(results)
                for i in li:
                    if i:
                        for j in i:
                            items.append(j)
                # print(li)
                # print(items)
                totalexpanditure, totalincome, eli, totaleli, ili, totalili = self.getinfor(items)
                eeli = []
                iili = []
                for i in totaleli:
                    eeli.append(float(i))
                for i in totalili:
                    iili.append(float(i))
                # print(type(totaleli[1]))
                # print(type(totalili[1]))
                if len(self.comboBox_2.currentText()) == 1:
                    csr.execute("insert into months values (\"{}\", {}, {}, \"{}\", \"{}\", \"{}\", \"{}\");".format(
                        self.lineEdit_15.text() + '.0' + self.comboBox_2.currentText(),
                        totalexpanditure,
                        totalincome,
                        eli,
                        eeli,
                        ili,
                        iili))
                else:
                    csr.execute("insert into months values (\"{}\", {}, {}, \"{}\", \"{}\", \"{}\", \"{}\");".format(
                        self.lineEdit_15.text() + '.' + self.comboBox_2.currentText(),
                        totalexpanditure,
                        totalincome,
                        eli,
                        eeli,
                        ili,
                        iili))
                db.commit()
                self.msbox("插入成功", "成功插入该月数据!")
                self.closedb(csr, db)
            except pymysql.err.IntegrityError:
                self.msbox("插入错误", "已经存在该月!")

    def showMonths(self):
        db, csr = self.cnctdb()
        csr.execute("use mnyman")
        csr.execute("select * from months;")
        weeks = csr.fetchall()
        self.closedb(csr, db)
        # print(weeks)
        li = []
        pattern = re.compile("\'.*\'")
        ptn = re.compile("\d*\.\d*")
        for i in weeks:
            resu = i[0].split('.')
            day = self.getDt(int(resu[0]), int(resu[1]))
            item = []
            item.append(i[0])
            item.append(i[1])
            item.append(round(i[1] / day * 100) / 100)
            item.append(i[2])
            item.append(round(i[2] / day * 100) / 100)
            s = """

                    """
            s += i[3].replace(',', '\n')
            typelist = pattern.findall(s)
            typee = []
            for j in typelist:
                typee.append(j.replace('\'', ''))
            # li.append(item)
            s = """

                    """
            s += i[4].replace(',', '\n')
            elist = ptn.findall(s)
            expenditurelist = []
            for j in elist:
                expenditurelist.append(Decimal.from_float(float(j.replace('\'', ''))))
            s = """

                    """
            s += i[5].replace(',', '\n')
            type = pattern.findall(s)
            typei = []
            for j in type:
                typei.append(j.replace('\'', ''))
            s = """

                    """
            s += i[6].replace(',', '\n')
            ty = ptn.findall(s)
            incomelist = []
            for j in ty:
                incomelist.append(Decimal.from_float(float(j.replace('\'', ''))))
            exproportion = ""
            inproportion = ""
            index = 0
            for j in typee:
                exproportion += j + " 占比: "
                a = str(-round(expenditurelist[index] / Decimal.from_float(float(i[1])) * 10000) / 100) + "%"
                exproportion += a + '\n'
                index += 1
            index = 0
            for j in typei:
                inproportion += j + " 占比: "
                a = str(round(incomelist[index] / Decimal.from_float(float(i[2])) * 10000) / 100) + "%"
                inproportion += a + '\n'
                index += 1
            exproportion = exproportion[0:len(exproportion) - 1]
            inproportion = inproportion[0:len(inproportion) - 1]
            item.append(exproportion)
            item.append(inproportion)
            li.append(item)
        self.setTable(self.tableWidget_15, li)

    def deleteMonth(self):
        if self.lineEdit_60.text() == "":
            self.msbox("插入错误", "年份不能为空!")
        elif len(self.lineEdit_60.text()) < 4:
            self.msbox("插入错误", "年份的位数必须大于等于4!")
        else:
            db, csr = self.cnctdb()
            csr.execute("use mnyman")
            if len(self.comboBox_5.currentText()) == 1:
                csr.execute("select * from months where mno=\"{}\";".format(self.lineEdit_60.text()+".0"+self.comboBox_5.currentText()))
                result = csr.fetchall()
                if result:
                    csr.execute("delete from months where mno=\"{}\";".format(self.lineEdit_60.text()+".0"+self.comboBox_5.currentText()))
                    self.msbox("删除成功","成功删除该月的数据!")
                else:
                    self.msbox("删除错误","不存在该月的数据!")
            else:
                csr.execute("select * from months where mno=\"{}\";".format(
                    self.lineEdit_60.text() + "." + self.comboBox_5.currentText()))
                result = csr.fetchall()
                if result:
                    csr.execute("delete from months where mno=\"{}\";".format(
                        self.lineEdit_60.text() + "." + self.comboBox_5.currentText()))
                    self.msbox("删除成功", "成功删除该月的数据!")
                else:
                    self.msbox("删除错误", "不存在该月的数据!")
            db.commit()
            self.closedb(db,csr)

    def insertQuarter(self):
        if self.lineEdit_37.text() == "":
            self.msbox("插入错误", "年份不能为空!")
        elif len(self.lineEdit_37.text()) < 4:
            self.msbox("插入错误", "年份的位数必须大于等于4!")
        else:
            if self.comboBox.currentText() == "第一季度":
                li = []
                li.append(self.lineEdit_37.text() + "." + "01")
                li.append(self.lineEdit_37.text() + "." + "02")
                li.append(self.lineEdit_37.text() + "." + "03")
                self.doinsertQuarter(li, self.lineEdit_37.text() + ".1季")
            elif self.comboBox.currentText() == "第二季度":
                li = []
                li.append(self.lineEdit_37.text() + "." + "04")
                li.append(self.lineEdit_37.text() + "." + "05")
                li.append(self.lineEdit_37.text() + "." + "06")
                self.doinsertQuarter(li, self.lineEdit_37.text() + ".2季")
            elif self.comboBox.currentText() == "第三季度":
                li = []
                li.append(self.lineEdit_37.text() + "." + "07")
                li.append(self.lineEdit_37.text() + "." + "08")
                li.append(self.lineEdit_37.text() + "." + "09")
                self.doinsertQuarter(li, self.lineEdit_37.text() + ".3季")
            else:
                li = []
                li.append(self.lineEdit_37.text() + "." + "10")
                li.append(self.lineEdit_37.text() + "." + "11")
                li.append(self.lineEdit_37.text() + "." + "12")
                self.doinsertQuarter(li, self.lineEdit_37.text() + ".4季")

    def doinsertQuarter(self, li, qno):
        try:
            db, csr = self.cnctdb()
            csr.execute("use mnyman")
            ilist = []
            for i in li:
                csr.execute("select mttle,mttli,eset,emset,iset,imset from months where mno=\"{}\";".format(i))
                item = csr.fetchone()
                ilist.append(item)
            totalexpanditure = 0
            totalincome = 0
            eli = []
            tmpeli = []
            totaleli = []
            tmptotaleli = []
            ili = []
            tmpili = []
            totalili = []
            tmptotalili = []
            pattern = re.compile("\'.*\'")
            ptn = re.compile("\d*\.\d*")
            for i in ilist:
                if i:
                    totalexpanditure += i[0]
                    totalincome += i[1]
                    s = """

                    """
                    s += i[2].replace(',', '\n')
                    l = pattern.findall(s)
                    tmp = []
                    for j in l:
                        tmp.append(j.replace('\'', ''))
                        eli.append(j.replace('\'', ''))
                    tmpeli.append(tmp)
                    s = """

                    """
                    s += i[3].replace(',', '\n')
                    ll = ptn.findall(s)
                    tmp = []
                    for j in ll:
                        tmp.append(Decimal.from_float(float(j.replace('\'', ''))))
                    tmptotaleli.append(tmp)
                    s = """

                                        """
                    s += i[4].replace(',', '\n')
                    lll = pattern.findall(s)
                    tmp = []
                    for j in lll:
                        tmp.append(j.replace('\'', ''))
                        ili.append(j.replace('\'', ''))
                    tmpili.append(tmp)
                    s = """

                                        """
                    s += i[5].replace(',', '\n')
                    llll = ptn.findall(s)
                    tmp = []
                    for j in llll:
                        tmp.append(Decimal.from_float(float(j.replace('\'', ''))))
                    tmptotalili.append(tmp)
            est = set(eli)
            eli = list(est)
            # print(eli)
            ist = set(ili)
            ili = list(ist)
            # print(ili)
            # print(tmptotaleli)
            # print(tmptotalili)
            for i in eli:
                # print(1)
                totaleli.append(0)
            for i in ili:
                # print(1)
                totalili.append(0)
            ex = 0
            for i in eli:
                tex = 0
                for j in tmpeli:
                    temx = 0
                    for k in j:
                        if k == i:
                            totaleli[ex] += tmptotaleli[tex][temx]
                        temx += 1
                    tex += 1
                ex += 1
            ix = 0
            for i in ili:
                tix = 0
                for j in tmpili:
                    timx = 0
                    for k in j:
                        if k == i:
                            totalili[ix] += tmptotalili[tix][timx]
                        timx += 1
                    tix += 1
                ix += 1
            eeeli = []
            iiili = []
            for i in totaleli:
                eeeli.append(round(i*100)/100)
            for i in totalili:
                iiili.append(round(i*100)/100)
            # print(type(eeli[1]))
            # print(type(iili[1]))
            eeli = []
            iili = []
            for i in eeeli:
                eeli.append(float(i))
            for i in iiili:
                iili.append(float(i))
            csr.execute(
                "insert into quarters values (\"{}\",{},{},\"{}\",\"{}\",\"{}\",\"{}\");".format(qno, totalexpanditure,
                                                                                                 totalincome, eli, eeli,
                                                                                                 ili, iili))
            db.commit()
            self.msbox("插入成功", "成功插入该季度数据!")
            self.closedb(csr, db)
        except pymysql.err.IntegrityError:
            self.msbox("插入错误", "已经存在该季度!")

    def showquarters(self):
        db, csr = self.cnctdb()
        csr.execute("use mnyman")
        csr.execute("select * from quarters;")
        quarters = csr.fetchall()
        self.closedb(csr, db)
        # print(quarters)
        li = []
        pattern = re.compile("\'.*\'")
        ptn = re.compile("\d*\.\d*")
        for i in quarters:
            # print(i)
            resu = i[0].split('.')
            day = 0
            if resu[1] == "1季":
                day += self.getDt(int(resu[0]), 1)
                day += self.getDt(int(resu[0]), 2)
                day += self.getDt(int(resu[0]), 3)
            elif resu[1] == "2季":
                day += self.getDt(int(resu[0]), 4)
                day += self.getDt(int(resu[0]), 5)
                day += self.getDt(int(resu[0]), 6)
            elif resu[1] == "3季":
                day += self.getDt(int(resu[0]), 7)
                day += self.getDt(int(resu[0]), 8)
                day += self.getDt(int(resu[0]), 9)
            else:
                day += self.getDt(int(resu[0]), 10)
                day += self.getDt(int(resu[0]), 11)
                day += self.getDt(int(resu[0]), 12)
            # print(day)
            item = []
            item.append(i[0])
            item.append(i[1])
            item.append(round(i[1] / day * 100) / 100)
            item.append(i[2])
            item.append(round(i[2] / day * 100) / 100)
            # print(item)
            s = """

            """
            s += i[3].replace(',', '\n')
            typelist = pattern.findall(s)
            typee = []
            for j in typelist:
                typee.append(j.replace('\'', ''))
            # li.append(item)
            # print(typee)
            s = """

            """
            s += i[4].replace(',', '\n')
            elist = ptn.findall(s)
            expenditurelist = []
            # print(elist)
            for j in elist:
                expenditurelist.append(Decimal.from_float(float(j.replace('\'', ''))))
            s = """

            """
            s += i[5].replace(',', '\n')
            type = pattern.findall(s)
            typei = []
            for j in type:
                typei.append(j.replace('\'', ''))
            s = """

            """
            s += i[6].replace(',', '\n')
            ty = ptn.findall(s)
            incomelist = []
            for j in ty:
                incomelist.append(Decimal.from_float(float(j.replace('\'', ''))))
            exproportion = ""
            inproportion = ""
            index = 0
            # print(expenditurelist)
            for j in typee:
                exproportion += j + " 占比: "
                a = str(-round(expenditurelist[index] / Decimal.from_float(float(i[1])) * 10000) / 100) + "%"
                exproportion += a + '\n'
                index += 1
            index = 0
            for j in typei:
                inproportion += j + " 占比: "
                a = str(round(incomelist[index] / Decimal.from_float(float(i[2])) * 10000) / 100) + "%"
                inproportion += a + '\n'
                index += 1
            exproportion = exproportion[0:len(exproportion) - 1]
            inproportion = inproportion[0:len(inproportion) - 1]
            item.append(exproportion)
            item.append(inproportion)
            li.append(item)
        self.setTable(self.tableWidget_16, li)

    def deleteQuarter(self):
        if self.lineEdit_61.text() == "":
            self.msbox("插入错误", "年份不能为空!")
        elif len(self.lineEdit_61.text()) < 4:
            self.msbox("插入错误", "年份的位数必须大于等于4!")
        else:
            if self.comboBox_6.currentText() == "第一季度":
                self.doDeleteQuarter(self.lineEdit_61.text() + ".1季")
            elif self.comboBox_6.currentText() == "第二季度":
                self.doDeleteQuarter(self.lineEdit_61.text() + ".2季")
            elif self.comboBox_6.currentText() == "第三季度":
                self.doDeleteQuarter(self.lineEdit_61.text() + ".3季")
            else:
                self.doDeleteQuarter(self.lineEdit_61.text() + ".4季")

    def doDeleteQuarter(self, quarter):
        db, csr = self.cnctdb()
        csr.execute("use mnyman")
        csr.execute("select * from quarters where qno=\"{}\";".format(quarter))
        result = csr.fetchall()
        if result:
            csr.execute("delete from quarters where qno=\"{}\";".format(quarter))
            self.msbox("删除成功","成功删除该季度的数据!")
        else:
            self.msbox("删除错误","不存在该季度的数据!")
        db.commit()
        self.closedb(db,csr)

    def insertYear(self):
        if self.lineEdit_38.text() == "":
            self.msbox("插入错误", "年份不能为空!")
        elif len(self.lineEdit_38.text()) < 4:
            self.msbox("插入错误", "年份的位数必须大于等于4!")
        else:
            try:
                db, csr = self.cnctdb()
                csr.execute("use mnyman")
                li = [self.lineEdit_38.text()+".1季",self.lineEdit_38.text()+".2季",self.lineEdit_38.text()+".3季",self.lineEdit_38.text()+".4季"]
                ilist = []
                for i in li:
                    csr.execute("select qttle,qttli,eset,emset,iset,imset from quarters where qno=\"{}\";".format(i))
                    item = csr.fetchone()
                    ilist.append(item)
                totalexpanditure = 0
                totalincome = 0
                eli = []
                tmpeli = []
                totaleli = []
                tmptotaleli = []
                ili = []
                tmpili = []
                totalili = []
                tmptotalili = []
                pattern = re.compile("\'.*\'")
                ptn = re.compile("\d*\.\d*")
                for i in ilist:
                    if i:
                        totalexpanditure += i[0]
                        totalincome += i[1]
                        s = """

                        """
                        s += i[2].replace(',', '\n')
                        l = pattern.findall(s)
                        tmp = []
                        for j in l:
                            tmp.append(j.replace('\'', ''))
                            eli.append(j.replace('\'', ''))
                        tmpeli.append(tmp)
                        s = """

                        """
                        s += i[3].replace(',', '\n')
                        ll = ptn.findall(s)
                        tmp = []
                        for j in ll:
                            tmp.append(Decimal.from_float(float(j.replace('\'', ''))))
                        tmptotaleli.append(tmp)
                        s = """

                                            """
                        s += i[4].replace(',', '\n')
                        lll = pattern.findall(s)
                        tmp = []
                        for j in lll:
                            tmp.append(j.replace('\'', ''))
                            ili.append(j.replace('\'', ''))
                        tmpili.append(tmp)
                        s = """

                                            """
                        s += i[5].replace(',', '\n')
                        llll = ptn.findall(s)
                        tmp = []
                        for j in llll:
                            tmp.append(Decimal.from_float(float(j.replace('\'', ''))))
                        tmptotalili.append(tmp)
                est = set(eli)
                eli = list(est)
                # print(eli)
                ist = set(ili)
                ili = list(ist)
                # print(ili)
                # print(tmptotaleli)
                # print(tmptotalili)
                for i in eli:
                    # print(1)
                    totaleli.append(0)
                for i in ili:
                    # print(1)
                    totalili.append(0)
                ex = 0
                for i in eli:
                    tex = 0
                    for j in tmpeli:
                        temx = 0
                        for k in j:
                            if k == i:
                                totaleli[ex] += tmptotaleli[tex][temx]
                            temx += 1
                        tex += 1
                    ex += 1
                ix = 0
                for i in ili:
                    tix = 0
                    for j in tmpili:
                        timx = 0
                        for k in j:
                            if k == i:
                                totalili[ix] += tmptotalili[tix][timx]
                            timx += 1
                        tix += 1
                    ix += 1
                eeeli = []
                iiili = []
                for i in totaleli:
                    eeeli.append(round(i * 100) / 100)
                for i in totalili:
                    iiili.append(round(i * 100) / 100)
                # print(type(eeli[1]))
                # print(type(iili[1]))
                eeli = []
                iili = []
                for i in eeeli:
                    eeli.append(float(i))
                for i in iiili:
                    iili.append(float(i))
                csr.execute(
                    "insert into years values (\"{}\",{},{},\"{}\",\"{}\",\"{}\",\"{}\");".format(self.lineEdit_38.text(),
                                                                                                     totalexpanditure,
                                                                                                     totalincome, eli,
                                                                                                     eeli,
                                                                                                     ili, iili))
                db.commit()
                self.msbox("插入成功", "成功插入该年数据!")
                self.closedb(csr, db)
            except pymysql.err.IntegrityError:
                self.msbox("插入错误", "已经存在该年!")

    def showYears(self):
        db, csr = self.cnctdb()
        csr.execute("use mnyman")
        csr.execute("select * from years;")
        years = csr.fetchall()
        self.closedb(csr, db)
        li = []
        pattern = re.compile("\'.*\'")
        ptn = re.compile("\d*\.\d*")
        for i in years:
            if (int(i[0]) % 4 == 0 and int(i[0]) % 100 != 0) or int(i[0]) % 400 == 0:
                day = 366
            else:
                day = 365
            # print(day)
            item = []
            item.append(i[0])
            item.append(i[1])
            item.append(round(i[1] / day * 100) / 100)
            item.append(i[2])
            item.append(round(i[2] / day * 100) / 100)
            # print(item)
            s = """

                    """
            s += i[3].replace(',', '\n')
            typelist = pattern.findall(s)
            typee = []
            for j in typelist:
                typee.append(j.replace('\'', ''))
            # li.append(item)
            # print(typee)
            s = """

                    """
            s += i[4].replace(',', '\n')
            elist = ptn.findall(s)
            expenditurelist = []
            # print(elist)
            for j in elist:
                expenditurelist.append(Decimal.from_float(float(j.replace('\'', ''))))
            s = """

                    """
            s += i[5].replace(',', '\n')
            type = pattern.findall(s)
            typei = []
            for j in type:
                typei.append(j.replace('\'', ''))
            s = """

                    """
            s += i[6].replace(',', '\n')
            ty = ptn.findall(s)
            incomelist = []
            for j in ty:
                incomelist.append(Decimal.from_float(float(j.replace('\'', ''))))
            exproportion = ""
            inproportion = ""
            index = 0
            # print(expenditurelist)
            for j in typee:
                exproportion += j + " 占比: "
                a = str(-round(expenditurelist[index] / Decimal.from_float(float(i[1])) * 10000) / 100) + "%"
                exproportion += a + '\n'
                index += 1
            index = 0
            for j in typei:
                inproportion += j + " 占比: "
                a = str(round(incomelist[index] / Decimal.from_float(float(i[2])) * 10000) / 100) + "%"
                inproportion += a + '\n'
                index += 1
            exproportion = exproportion[0:len(exproportion) - 1]
            inproportion = inproportion[0:len(inproportion) - 1]
            item.append(exproportion)
            item.append(inproportion)
            li.append(item)
        self.setTable(self.tableWidget_17, li)

    def deleteYear(self):
        if self.lineEdit_50.text() == "":
            self.msbox("插入错误", "年份不能为空!")
        elif len(self.lineEdit_50.text()) < 4:
            self.msbox("插入错误", "年份的位数必须大于等于4!")
        else:
            db, csr = self.cnctdb()
            csr.execute("use mnyman")
            csr.execute("select * from years where yno=\"{}\";".format(self.lineEdit_50.text()))
            result = csr.fetchall()
            if result:
                csr.execute("delete from years where yno=\"{}\";".format(self.lineEdit_50.text()))
                self.msbox("删除成功","成功删除该年的数据!")
            else:
                self.msbox("删除错误","不存在该年的数据!")
            db.commit()
            self.closedb(db, csr)

    def setupUi(self, Form):
        if not Form.objectName():
            Form.setObjectName(u"Form")
        Form.resize(1519, 799)
        icon = QIcon()
        icon.addFile(u"mn.png", QSize(), QIcon.Normal, QIcon.Off)
        Form.setWindowIcon(icon)
        Form.setStyleSheet(u"background-color: rgb(60, 63, 65);")
        self.tabWidget = QTabWidget(Form)
        self.tabWidget.setObjectName(u"tabWidget")
        self.tabWidget.setGeometry(QRect(0, 0, 1521, 801))
        self.tabWidget.setStyleSheet(u"border-color: rgb(60, 63, 65);\n"
"background-color: rgb(60, 63, 65);\n"
"color: rgb(175, 177, 179);")
        self.tabWidget.setTabBarAutoHide(False)
        self.tab = QWidget()
        self.tab.setObjectName(u"tab")
        self.tab.setStyleSheet(u"border-color: rgb(60, 63, 65);")
        self.line = QFrame(self.tab)
        self.line.setObjectName(u"line")
        self.line.setGeometry(QRect(530, 0, 20, 771))
        self.line.setFrameShape(QFrame.VLine)
        self.line.setFrameShadow(QFrame.Sunken)
        self.label = QLabel(self.tab)
        self.label.setObjectName(u"label")
        self.label.setGeometry(QRect(80, 100, 54, 16))
        self.lineEdit = QLineEdit(self.tab)
        self.lineEdit.setObjectName(u"lineEdit")
        self.lineEdit.setGeometry(QRect(160, 100, 241, 20))
        self.lineEdit.setStyleSheet(u"background-color: rgb(175, 177, 179);\n"
"color: rgb(0, 0, 0);")
        self.pushButton = QPushButton(self.tab)
        self.pushButton.setObjectName(u"pushButton")
        self.pushButton.setGeometry(QRect(210, 180, 75, 24))
        self.pushButton.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.line_2 = QFrame(self.tab)
        self.line_2.setObjectName(u"line_2")
        self.line_2.setGeometry(QRect(0, 270, 531, 16))
        self.line_2.setFrameShape(QFrame.HLine)
        self.line_2.setFrameShadow(QFrame.Sunken)
        self.pushButton_2 = QPushButton(self.tab)
        self.pushButton_2.setObjectName(u"pushButton_2")
        self.pushButton_2.setGeometry(QRect(210, 280, 75, 24))
        self.pushButton_2.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.tableWidget = QTableWidget(self.tab)
        if (self.tableWidget.columnCount() < 1):
            self.tableWidget.setColumnCount(1)
        __qtablewidgetitem = QTableWidgetItem()
        self.tableWidget.setHorizontalHeaderItem(0, __qtablewidgetitem)
        self.tableWidget.setObjectName(u"tableWidget")
        self.tableWidget.setGeometry(QRect(10, 310, 521, 461))
        self.tableWidget.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.label_6 = QLabel(self.tab)
        self.label_6.setObjectName(u"label_6")
        self.label_6.setGeometry(QRect(890, 200, 21, 16))
        self.label_5 = QLabel(self.tab)
        self.label_5.setObjectName(u"label_5")
        self.label_5.setGeometry(QRect(650, 370, 54, 16))
        self.lineEdit_2 = QLineEdit(self.tab)
        self.lineEdit_2.setObjectName(u"lineEdit_2")
        self.lineEdit_2.setGeometry(QRect(780, 200, 101, 20))
        self.lineEdit_2.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_2.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.label_4 = QLabel(self.tab)
        self.label_4.setObjectName(u"label_4")
        self.label_4.setGeometry(QRect(650, 310, 54, 16))
        self.lineEdit_3 = QLineEdit(self.tab)
        self.lineEdit_3.setObjectName(u"lineEdit_3")
        self.lineEdit_3.setGeometry(QRect(730, 260, 661, 20))
        self.lineEdit_3.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.label_2 = QLabel(self.tab)
        self.label_2.setObjectName(u"label_2")
        self.label_2.setGeometry(QRect(650, 200, 54, 16))
        self.lineEdit_4 = QLineEdit(self.tab)
        self.lineEdit_4.setObjectName(u"lineEdit_4")
        self.lineEdit_4.setGeometry(QRect(730, 310, 661, 20))
        self.lineEdit_4.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.label_3 = QLabel(self.tab)
        self.label_3.setObjectName(u"label_3")
        self.label_3.setGeometry(QRect(650, 260, 54, 16))
        self.lineEdit_7 = QLineEdit(self.tab)
        self.lineEdit_7.setObjectName(u"lineEdit_7")
        self.lineEdit_7.setGeometry(QRect(1140, 200, 101, 20))
        self.lineEdit_7.setStyleSheet(u"background-color: rgb(175, 177, 179);\n"
"color: rgb(0, 0, 0);")
        self.lineEdit_7.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.pushButton_3 = QPushButton(self.tab)
        self.pushButton_3.setObjectName(u"pushButton_3")
        self.pushButton_3.setGeometry(QRect(990, 480, 75, 24))
        self.pushButton_3.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.lineEdit_6 = QLineEdit(self.tab)
        self.lineEdit_6.setObjectName(u"lineEdit_6")
        self.lineEdit_6.setGeometry(QRect(960, 200, 101, 20))
        self.lineEdit_6.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_6.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.label_7 = QLabel(self.tab)
        self.label_7.setObjectName(u"label_7")
        self.label_7.setGeometry(QRect(1070, 200, 21, 16))
        self.label_8 = QLabel(self.tab)
        self.label_8.setObjectName(u"label_8")
        self.label_8.setGeometry(QRect(1250, 200, 21, 16))
        self.lineEdit_5 = QLineEdit(self.tab)
        self.lineEdit_5.setObjectName(u"lineEdit_5")
        self.lineEdit_5.setGeometry(QRect(730, 370, 661, 20))
        self.lineEdit_5.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.tabWidget.addTab(self.tab, "")
        self.tab_2 = QWidget()
        self.tab_2.setObjectName(u"tab_2")
        self.pushButton_4 = QPushButton(self.tab_2)
        self.pushButton_4.setObjectName(u"pushButton_4")
        self.pushButton_4.setGeometry(QRect(520, 10, 75, 24))
        self.pushButton_4.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.tableWidget_2 = QTableWidget(self.tab_2)
        if (self.tableWidget_2.columnCount() < 5):
            self.tableWidget_2.setColumnCount(5)
        __qtablewidgetitem1 = QTableWidgetItem()
        self.tableWidget_2.setHorizontalHeaderItem(0, __qtablewidgetitem1)
        __qtablewidgetitem2 = QTableWidgetItem()
        self.tableWidget_2.setHorizontalHeaderItem(1, __qtablewidgetitem2)
        __qtablewidgetitem3 = QTableWidgetItem()
        self.tableWidget_2.setHorizontalHeaderItem(2, __qtablewidgetitem3)
        __qtablewidgetitem4 = QTableWidgetItem()
        self.tableWidget_2.setHorizontalHeaderItem(3, __qtablewidgetitem4)
        __qtablewidgetitem5 = QTableWidgetItem()
        self.tableWidget_2.setHorizontalHeaderItem(4, __qtablewidgetitem5)
        self.tableWidget_2.setObjectName(u"tableWidget_2")
        self.tableWidget_2.setGeometry(QRect(10, 40, 921, 451))
        self.tableWidget_2.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.label_22 = QLabel(self.tab_2)
        self.label_22.setObjectName(u"label_22")
        self.label_22.setGeometry(QRect(190, 10, 121, 16))
        self.line_7 = QFrame(self.tab_2)
        self.line_7.setObjectName(u"line_7")
        self.line_7.setGeometry(QRect(930, -10, 20, 791))
        self.line_7.setFrameShape(QFrame.VLine)
        self.line_7.setFrameShadow(QFrame.Sunken)
        self.label_23 = QLabel(self.tab_2)
        self.label_23.setObjectName(u"label_23")
        self.label_23.setGeometry(QRect(1000, 10, 121, 16))
        self.pushButton_9 = QPushButton(self.tab_2)
        self.pushButton_9.setObjectName(u"pushButton_9")
        self.pushButton_9.setGeometry(QRect(1430, 10, 75, 24))
        self.pushButton_9.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.tableWidget_5 = QTableWidget(self.tab_2)
        if (self.tableWidget_5.columnCount() < 4):
            self.tableWidget_5.setColumnCount(4)
        __qtablewidgetitem6 = QTableWidgetItem()
        self.tableWidget_5.setHorizontalHeaderItem(0, __qtablewidgetitem6)
        __qtablewidgetitem7 = QTableWidgetItem()
        self.tableWidget_5.setHorizontalHeaderItem(1, __qtablewidgetitem7)
        __qtablewidgetitem8 = QTableWidgetItem()
        self.tableWidget_5.setHorizontalHeaderItem(2, __qtablewidgetitem8)
        __qtablewidgetitem9 = QTableWidgetItem()
        self.tableWidget_5.setHorizontalHeaderItem(3, __qtablewidgetitem9)
        self.tableWidget_5.setObjectName(u"tableWidget_5")
        self.tableWidget_5.setGeometry(QRect(950, 40, 561, 731))
        self.tableWidget_5.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_17 = QLineEdit(self.tab_2)
        self.lineEdit_17.setObjectName(u"lineEdit_17")
        self.lineEdit_17.setGeometry(QRect(1180, 10, 241, 20))
        self.lineEdit_17.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.label_25 = QLabel(self.tab_2)
        self.label_25.setObjectName(u"label_25")
        self.label_25.setGeometry(QRect(170, 520, 121, 16))
        self.line_5 = QFrame(self.tab_2)
        self.line_5.setObjectName(u"line_5")
        self.line_5.setGeometry(QRect(10, 500, 921, 21))
        self.line_5.setFrameShape(QFrame.HLine)
        self.line_5.setFrameShadow(QFrame.Sunken)
        self.pushButton_11 = QPushButton(self.tab_2)
        self.pushButton_11.setObjectName(u"pushButton_11")
        self.pushButton_11.setGeometry(QRect(700, 520, 75, 24))
        self.pushButton_11.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.tableWidget_8 = QTableWidget(self.tab_2)
        if (self.tableWidget_8.columnCount() < 5):
            self.tableWidget_8.setColumnCount(5)
        __qtablewidgetitem10 = QTableWidgetItem()
        self.tableWidget_8.setHorizontalHeaderItem(0, __qtablewidgetitem10)
        __qtablewidgetitem11 = QTableWidgetItem()
        self.tableWidget_8.setHorizontalHeaderItem(1, __qtablewidgetitem11)
        __qtablewidgetitem12 = QTableWidgetItem()
        self.tableWidget_8.setHorizontalHeaderItem(2, __qtablewidgetitem12)
        __qtablewidgetitem13 = QTableWidgetItem()
        self.tableWidget_8.setHorizontalHeaderItem(3, __qtablewidgetitem13)
        __qtablewidgetitem14 = QTableWidgetItem()
        self.tableWidget_8.setHorizontalHeaderItem(4, __qtablewidgetitem14)
        self.tableWidget_8.setObjectName(u"tableWidget_8")
        self.tableWidget_8.setGeometry(QRect(10, 550, 921, 221))
        self.tableWidget_8.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_18 = QLineEdit(self.tab_2)
        self.lineEdit_18.setObjectName(u"lineEdit_18")
        self.lineEdit_18.setGeometry(QRect(370, 520, 241, 20))
        self.lineEdit_18.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.tabWidget.addTab(self.tab_2, "")
        self.tab_3 = QWidget()
        self.tab_3.setObjectName(u"tab_3")
        self.pushButton_5 = QPushButton(self.tab_3)
        self.pushButton_5.setObjectName(u"pushButton_5")
        self.pushButton_5.setGeometry(QRect(1010, 20, 75, 24))
        self.pushButton_5.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.lineEdit_9 = QLineEdit(self.tab_3)
        self.lineEdit_9.setObjectName(u"lineEdit_9")
        self.lineEdit_9.setGeometry(QRect(670, 20, 101, 20))
        self.lineEdit_9.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_9.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.label_10 = QLabel(self.tab_3)
        self.label_10.setObjectName(u"label_10")
        self.label_10.setGeometry(QRect(600, 20, 21, 16))
        self.lineEdit_8 = QLineEdit(self.tab_3)
        self.lineEdit_8.setObjectName(u"lineEdit_8")
        self.lineEdit_8.setGeometry(QRect(490, 20, 101, 20))
        self.lineEdit_8.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_8.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.label_12 = QLabel(self.tab_3)
        self.label_12.setObjectName(u"label_12")
        self.label_12.setGeometry(QRect(780, 20, 21, 16))
        self.label_9 = QLabel(self.tab_3)
        self.label_9.setObjectName(u"label_9")
        self.label_9.setGeometry(QRect(390, 20, 54, 16))
        self.lineEdit_10 = QLineEdit(self.tab_3)
        self.lineEdit_10.setObjectName(u"lineEdit_10")
        self.lineEdit_10.setGeometry(QRect(850, 20, 101, 20))
        self.lineEdit_10.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_10.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.label_11 = QLabel(self.tab_3)
        self.label_11.setObjectName(u"label_11")
        self.label_11.setGeometry(QRect(960, 20, 21, 16))
        self.line_3 = QFrame(self.tab_3)
        self.line_3.setObjectName(u"line_3")
        self.line_3.setGeometry(QRect(0, 50, 1521, 21))
        self.line_3.setFrameShape(QFrame.HLine)
        self.line_3.setFrameShadow(QFrame.Sunken)
        self.pushButton_6 = QPushButton(self.tab_3)
        self.pushButton_6.setObjectName(u"pushButton_6")
        self.pushButton_6.setGeometry(QRect(20, 70, 121, 24))
        self.pushButton_6.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.tableWidget_3 = QTableWidget(self.tab_3)
        if (self.tableWidget_3.columnCount() < 5):
            self.tableWidget_3.setColumnCount(5)
        __qtablewidgetitem15 = QTableWidgetItem()
        self.tableWidget_3.setHorizontalHeaderItem(0, __qtablewidgetitem15)
        __qtablewidgetitem16 = QTableWidgetItem()
        self.tableWidget_3.setHorizontalHeaderItem(1, __qtablewidgetitem16)
        __qtablewidgetitem17 = QTableWidgetItem()
        self.tableWidget_3.setHorizontalHeaderItem(2, __qtablewidgetitem17)
        __qtablewidgetitem18 = QTableWidgetItem()
        self.tableWidget_3.setHorizontalHeaderItem(3, __qtablewidgetitem18)
        __qtablewidgetitem19 = QTableWidgetItem()
        self.tableWidget_3.setHorizontalHeaderItem(4, __qtablewidgetitem19)
        self.tableWidget_3.setObjectName(u"tableWidget_3")
        self.tableWidget_3.setGeometry(QRect(10, 100, 741, 671))
        self.tableWidget_3.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.line_8 = QFrame(self.tab_3)
        self.line_8.setObjectName(u"line_8")
        self.line_8.setGeometry(QRect(750, 70, 20, 701))
        self.line_8.setFrameShape(QFrame.VLine)
        self.line_8.setFrameShadow(QFrame.Sunken)
        self.tableWidget_9 = QTableWidget(self.tab_3)
        if (self.tableWidget_9.columnCount() < 5):
            self.tableWidget_9.setColumnCount(5)
        __qtablewidgetitem20 = QTableWidgetItem()
        self.tableWidget_9.setHorizontalHeaderItem(0, __qtablewidgetitem20)
        __qtablewidgetitem21 = QTableWidgetItem()
        self.tableWidget_9.setHorizontalHeaderItem(1, __qtablewidgetitem21)
        __qtablewidgetitem22 = QTableWidgetItem()
        self.tableWidget_9.setHorizontalHeaderItem(2, __qtablewidgetitem22)
        __qtablewidgetitem23 = QTableWidgetItem()
        self.tableWidget_9.setHorizontalHeaderItem(3, __qtablewidgetitem23)
        __qtablewidgetitem24 = QTableWidgetItem()
        self.tableWidget_9.setHorizontalHeaderItem(4, __qtablewidgetitem24)
        self.tableWidget_9.setObjectName(u"tableWidget_9")
        self.tableWidget_9.setGeometry(QRect(770, 100, 741, 671))
        self.tableWidget_9.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.pushButton_12 = QPushButton(self.tab_3)
        self.pushButton_12.setObjectName(u"pushButton_12")
        self.pushButton_12.setGeometry(QRect(1210, 70, 81, 24))
        self.pushButton_12.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.lineEdit_14 = QLineEdit(self.tab_3)
        self.lineEdit_14.setObjectName(u"lineEdit_14")
        self.lineEdit_14.setGeometry(QRect(1030, 70, 101, 20))
        self.lineEdit_14.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.label_18 = QLabel(self.tab_3)
        self.label_18.setObjectName(u"label_18")
        self.label_18.setGeometry(QRect(870, 70, 101, 16))
        self.tabWidget.addTab(self.tab_3, "")
        self.tab_4 = QWidget()
        self.tab_4.setObjectName(u"tab_4")
        self.tableWidget_4 = QTableWidget(self.tab_4)
        if (self.tableWidget_4.columnCount() < 7):
            self.tableWidget_4.setColumnCount(7)
        __qtablewidgetitem25 = QTableWidgetItem()
        self.tableWidget_4.setHorizontalHeaderItem(0, __qtablewidgetitem25)
        __qtablewidgetitem26 = QTableWidgetItem()
        self.tableWidget_4.setHorizontalHeaderItem(1, __qtablewidgetitem26)
        __qtablewidgetitem27 = QTableWidgetItem()
        self.tableWidget_4.setHorizontalHeaderItem(2, __qtablewidgetitem27)
        __qtablewidgetitem28 = QTableWidgetItem()
        self.tableWidget_4.setHorizontalHeaderItem(3, __qtablewidgetitem28)
        __qtablewidgetitem29 = QTableWidgetItem()
        self.tableWidget_4.setHorizontalHeaderItem(4, __qtablewidgetitem29)
        __qtablewidgetitem30 = QTableWidgetItem()
        self.tableWidget_4.setHorizontalHeaderItem(5, __qtablewidgetitem30)
        __qtablewidgetitem31 = QTableWidgetItem()
        self.tableWidget_4.setHorizontalHeaderItem(6, __qtablewidgetitem31)
        self.tableWidget_4.setObjectName(u"tableWidget_4")
        self.tableWidget_4.setGeometry(QRect(10, 90, 1501, 681))
        self.tableWidget_4.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.pushButton_7 = QPushButton(self.tab_4)
        self.pushButton_7.setObjectName(u"pushButton_7")
        self.pushButton_7.setGeometry(QRect(1050, 10, 75, 24))
        self.pushButton_7.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.label_13 = QLabel(self.tab_4)
        self.label_13.setObjectName(u"label_13")
        self.label_13.setGeometry(QRect(390, 10, 54, 16))
        self.label_14 = QLabel(self.tab_4)
        self.label_14.setObjectName(u"label_14")
        self.label_14.setGeometry(QRect(810, 10, 21, 16))
        self.lineEdit_11 = QLineEdit(self.tab_4)
        self.lineEdit_11.setObjectName(u"lineEdit_11")
        self.lineEdit_11.setGeometry(QRect(700, 10, 101, 20))
        self.lineEdit_11.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_11.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.label_15 = QLabel(self.tab_4)
        self.label_15.setObjectName(u"label_15")
        self.label_15.setGeometry(QRect(990, 10, 21, 16))
        self.label_16 = QLabel(self.tab_4)
        self.label_16.setObjectName(u"label_16")
        self.label_16.setGeometry(QRect(630, 10, 21, 16))
        self.lineEdit_12 = QLineEdit(self.tab_4)
        self.lineEdit_12.setObjectName(u"lineEdit_12")
        self.lineEdit_12.setGeometry(QRect(520, 10, 101, 20))
        self.lineEdit_12.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_12.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.lineEdit_13 = QLineEdit(self.tab_4)
        self.lineEdit_13.setObjectName(u"lineEdit_13")
        self.lineEdit_13.setGeometry(QRect(880, 10, 101, 20))
        self.lineEdit_13.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_13.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.label_17 = QLabel(self.tab_4)
        self.label_17.setObjectName(u"label_17")
        self.label_17.setGeometry(QRect(460, 10, 54, 16))
        self.line_6 = QFrame(self.tab_4)
        self.line_6.setObjectName(u"line_6")
        self.line_6.setGeometry(QRect(0, 40, 1511, 20))
        self.line_6.setFrameShape(QFrame.HLine)
        self.line_6.setFrameShadow(QFrame.Sunken)
        self.pushButton_8 = QPushButton(self.tab_4)
        self.pushButton_8.setObjectName(u"pushButton_8")
        self.pushButton_8.setGeometry(QRect(730, 60, 75, 24))
        self.pushButton_8.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.tabWidget.addTab(self.tab_4, "")
        self.tab_5 = QWidget()
        self.tab_5.setObjectName(u"tab_5")
        self.pushButton_10 = QPushButton(self.tab_5)
        self.pushButton_10.setObjectName(u"pushButton_10")
        self.pushButton_10.setGeometry(QRect(950, 10, 75, 24))
        self.pushButton_10.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.lineEdit_15 = QLineEdit(self.tab_5)
        self.lineEdit_15.setObjectName(u"lineEdit_15")
        self.lineEdit_15.setGeometry(QRect(580, 10, 101, 20))
        self.lineEdit_15.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_15.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.label_19 = QLabel(self.tab_5)
        self.label_19.setObjectName(u"label_19")
        self.label_19.setGeometry(QRect(480, 10, 54, 16))
        self.label_20 = QLabel(self.tab_5)
        self.label_20.setObjectName(u"label_20")
        self.label_20.setGeometry(QRect(690, 10, 21, 16))
        self.label_21 = QLabel(self.tab_5)
        self.label_21.setObjectName(u"label_21")
        self.label_21.setGeometry(QRect(870, 10, 21, 16))
        self.line_4 = QFrame(self.tab_5)
        self.line_4.setObjectName(u"line_4")
        self.line_4.setGeometry(QRect(10, 40, 1501, 20))
        self.line_4.setFrameShape(QFrame.HLine)
        self.line_4.setFrameShadow(QFrame.Sunken)
        self.pushButton_25 = QPushButton(self.tab_5)
        self.pushButton_25.setObjectName(u"pushButton_25")
        self.pushButton_25.setGeometry(QRect(730, 60, 75, 24))
        self.pushButton_25.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.tableWidget_15 = QTableWidget(self.tab_5)
        if (self.tableWidget_15.columnCount() < 7):
            self.tableWidget_15.setColumnCount(7)
        __qtablewidgetitem32 = QTableWidgetItem()
        self.tableWidget_15.setHorizontalHeaderItem(0, __qtablewidgetitem32)
        __qtablewidgetitem33 = QTableWidgetItem()
        self.tableWidget_15.setHorizontalHeaderItem(1, __qtablewidgetitem33)
        __qtablewidgetitem34 = QTableWidgetItem()
        self.tableWidget_15.setHorizontalHeaderItem(2, __qtablewidgetitem34)
        __qtablewidgetitem35 = QTableWidgetItem()
        self.tableWidget_15.setHorizontalHeaderItem(3, __qtablewidgetitem35)
        __qtablewidgetitem36 = QTableWidgetItem()
        self.tableWidget_15.setHorizontalHeaderItem(4, __qtablewidgetitem36)
        __qtablewidgetitem37 = QTableWidgetItem()
        self.tableWidget_15.setHorizontalHeaderItem(5, __qtablewidgetitem37)
        __qtablewidgetitem38 = QTableWidgetItem()
        self.tableWidget_15.setHorizontalHeaderItem(6, __qtablewidgetitem38)
        self.tableWidget_15.setObjectName(u"tableWidget_15")
        self.tableWidget_15.setGeometry(QRect(10, 90, 1501, 681))
        self.tableWidget_15.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.comboBox_2 = QComboBox(self.tab_5)
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.comboBox_2.setObjectName(u"comboBox_2")
        self.comboBox_2.setGeometry(QRect(760, 10, 101, 22))
        self.comboBox_2.setLayoutDirection(Qt.RightToLeft)
        self.comboBox_2.setStyleSheet(u"background-color: rgb(175, 177, 179);\n"
"color: rgb(0, 0, 0);")
        self.tabWidget.addTab(self.tab_5, "")
        self.tab_11 = QWidget()
        self.tab_11.setObjectName(u"tab_11")
        self.label_49 = QLabel(self.tab_11)
        self.label_49.setObjectName(u"label_49")
        self.label_49.setGeometry(QRect(470, 10, 54, 16))
        self.lineEdit_37 = QLineEdit(self.tab_11)
        self.lineEdit_37.setObjectName(u"lineEdit_37")
        self.lineEdit_37.setGeometry(QRect(580, 10, 101, 20))
        self.lineEdit_37.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_37.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.label_50 = QLabel(self.tab_11)
        self.label_50.setObjectName(u"label_50")
        self.label_50.setGeometry(QRect(690, 10, 21, 16))
        self.comboBox = QComboBox(self.tab_11)
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.setObjectName(u"comboBox")
        self.comboBox.setGeometry(QRect(760, 10, 101, 22))
        self.comboBox.setStyleSheet(u"background-color: rgb(175, 177, 179);\n"
"color: rgb(0, 0, 0);")
        self.pushButton_26 = QPushButton(self.tab_11)
        self.pushButton_26.setObjectName(u"pushButton_26")
        self.pushButton_26.setGeometry(QRect(950, 10, 75, 24))
        self.pushButton_26.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.line_17 = QFrame(self.tab_11)
        self.line_17.setObjectName(u"line_17")
        self.line_17.setGeometry(QRect(10, 40, 1501, 20))
        self.line_17.setFrameShape(QFrame.HLine)
        self.line_17.setFrameShadow(QFrame.Sunken)
        self.pushButton_27 = QPushButton(self.tab_11)
        self.pushButton_27.setObjectName(u"pushButton_27")
        self.pushButton_27.setGeometry(QRect(730, 60, 75, 24))
        self.pushButton_27.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.tableWidget_16 = QTableWidget(self.tab_11)
        if (self.tableWidget_16.columnCount() < 7):
            self.tableWidget_16.setColumnCount(7)
        __qtablewidgetitem39 = QTableWidgetItem()
        self.tableWidget_16.setHorizontalHeaderItem(0, __qtablewidgetitem39)
        __qtablewidgetitem40 = QTableWidgetItem()
        self.tableWidget_16.setHorizontalHeaderItem(1, __qtablewidgetitem40)
        __qtablewidgetitem41 = QTableWidgetItem()
        self.tableWidget_16.setHorizontalHeaderItem(2, __qtablewidgetitem41)
        __qtablewidgetitem42 = QTableWidgetItem()
        self.tableWidget_16.setHorizontalHeaderItem(3, __qtablewidgetitem42)
        __qtablewidgetitem43 = QTableWidgetItem()
        self.tableWidget_16.setHorizontalHeaderItem(4, __qtablewidgetitem43)
        __qtablewidgetitem44 = QTableWidgetItem()
        self.tableWidget_16.setHorizontalHeaderItem(5, __qtablewidgetitem44)
        __qtablewidgetitem45 = QTableWidgetItem()
        self.tableWidget_16.setHorizontalHeaderItem(6, __qtablewidgetitem45)
        self.tableWidget_16.setObjectName(u"tableWidget_16")
        self.tableWidget_16.setGeometry(QRect(10, 90, 1501, 681))
        self.tableWidget_16.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.tabWidget.addTab(self.tab_11, "")
        self.tab_12 = QWidget()
        self.tab_12.setObjectName(u"tab_12")
        self.lineEdit_38 = QLineEdit(self.tab_12)
        self.lineEdit_38.setObjectName(u"lineEdit_38")
        self.lineEdit_38.setGeometry(QRect(670, 10, 101, 20))
        self.lineEdit_38.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_38.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.label_51 = QLabel(self.tab_12)
        self.label_51.setObjectName(u"label_51")
        self.label_51.setGeometry(QRect(580, 10, 54, 16))
        self.pushButton_28 = QPushButton(self.tab_12)
        self.pushButton_28.setObjectName(u"pushButton_28")
        self.pushButton_28.setGeometry(QRect(730, 60, 75, 24))
        self.pushButton_28.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.label_52 = QLabel(self.tab_12)
        self.label_52.setObjectName(u"label_52")
        self.label_52.setGeometry(QRect(790, 10, 21, 16))
        self.line_18 = QFrame(self.tab_12)
        self.line_18.setObjectName(u"line_18")
        self.line_18.setGeometry(QRect(10, 40, 1501, 20))
        self.line_18.setFrameShape(QFrame.HLine)
        self.line_18.setFrameShadow(QFrame.Sunken)
        self.tableWidget_17 = QTableWidget(self.tab_12)
        if (self.tableWidget_17.columnCount() < 7):
            self.tableWidget_17.setColumnCount(7)
        __qtablewidgetitem46 = QTableWidgetItem()
        self.tableWidget_17.setHorizontalHeaderItem(0, __qtablewidgetitem46)
        __qtablewidgetitem47 = QTableWidgetItem()
        self.tableWidget_17.setHorizontalHeaderItem(1, __qtablewidgetitem47)
        __qtablewidgetitem48 = QTableWidgetItem()
        self.tableWidget_17.setHorizontalHeaderItem(2, __qtablewidgetitem48)
        __qtablewidgetitem49 = QTableWidgetItem()
        self.tableWidget_17.setHorizontalHeaderItem(3, __qtablewidgetitem49)
        __qtablewidgetitem50 = QTableWidgetItem()
        self.tableWidget_17.setHorizontalHeaderItem(4, __qtablewidgetitem50)
        __qtablewidgetitem51 = QTableWidgetItem()
        self.tableWidget_17.setHorizontalHeaderItem(5, __qtablewidgetitem51)
        __qtablewidgetitem52 = QTableWidgetItem()
        self.tableWidget_17.setHorizontalHeaderItem(6, __qtablewidgetitem52)
        self.tableWidget_17.setObjectName(u"tableWidget_17")
        self.tableWidget_17.setGeometry(QRect(10, 90, 1501, 681))
        self.tableWidget_17.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.pushButton_29 = QPushButton(self.tab_12)
        self.pushButton_29.setObjectName(u"pushButton_29")
        self.pushButton_29.setGeometry(QRect(850, 10, 75, 24))
        self.pushButton_29.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.tabWidget.addTab(self.tab_12, "")
        self.tab_6 = QWidget()
        self.tab_6.setObjectName(u"tab_6")
        self.label_24 = QLabel(self.tab_6)
        self.label_24.setObjectName(u"label_24")
        self.label_24.setGeometry(QRect(130, 100, 91, 16))
        self.lineEdit_16 = QLineEdit(self.tab_6)
        self.lineEdit_16.setObjectName(u"lineEdit_16")
        self.lineEdit_16.setGeometry(QRect(230, 100, 141, 20))
        self.lineEdit_16.setStyleSheet(u"background-color: rgb(175, 177, 179);\n"
"color: rgb(0, 0, 0);")
        self.pushButton_13 = QPushButton(self.tab_6)
        self.pushButton_13.setObjectName(u"pushButton_13")
        self.pushButton_13.setGeometry(QRect(400, 100, 75, 24))
        self.pushButton_13.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.line_9 = QFrame(self.tab_6)
        self.line_9.setObjectName(u"line_9")
        self.line_9.setGeometry(QRect(10, 140, 1501, 21))
        self.line_9.setFrameShape(QFrame.HLine)
        self.line_9.setFrameShadow(QFrame.Sunken)
        self.line_10 = QFrame(self.tab_6)
        self.line_10.setObjectName(u"line_10")
        self.line_10.setGeometry(QRect(570, 90, 31, 51))
        self.line_10.setFrameShape(QFrame.VLine)
        self.line_10.setFrameShadow(QFrame.Sunken)
        self.label_26 = QLabel(self.tab_6)
        self.label_26.setObjectName(u"label_26")
        self.label_26.setGeometry(QRect(690, 100, 151, 16))
        self.label_27 = QLabel(self.tab_6)
        self.label_27.setObjectName(u"label_27")
        self.label_27.setGeometry(QRect(1160, 100, 21, 16))
        self.lineEdit_19 = QLineEdit(self.tab_6)
        self.lineEdit_19.setObjectName(u"lineEdit_19")
        self.lineEdit_19.setGeometry(QRect(1050, 100, 101, 20))
        self.lineEdit_19.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_19.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.pushButton_14 = QPushButton(self.tab_6)
        self.pushButton_14.setObjectName(u"pushButton_14")
        self.pushButton_14.setGeometry(QRect(1390, 100, 75, 24))
        self.pushButton_14.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.lineEdit_20 = QLineEdit(self.tab_6)
        self.lineEdit_20.setObjectName(u"lineEdit_20")
        self.lineEdit_20.setGeometry(QRect(870, 100, 101, 20))
        self.lineEdit_20.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_20.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.lineEdit_21 = QLineEdit(self.tab_6)
        self.lineEdit_21.setObjectName(u"lineEdit_21")
        self.lineEdit_21.setGeometry(QRect(1230, 100, 101, 20))
        self.lineEdit_21.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_21.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.label_28 = QLabel(self.tab_6)
        self.label_28.setObjectName(u"label_28")
        self.label_28.setGeometry(QRect(980, 100, 21, 16))
        self.label_29 = QLabel(self.tab_6)
        self.label_29.setObjectName(u"label_29")
        self.label_29.setGeometry(QRect(1340, 100, 21, 16))
        self.label_30 = QLabel(self.tab_6)
        self.label_30.setObjectName(u"label_30")
        self.label_30.setGeometry(QRect(100, 170, 111, 16))
        self.label_69 = QLabel(self.tab_6)
        self.label_69.setObjectName(u"label_69")
        self.label_69.setGeometry(QRect(700, 170, 21, 16))
        self.lineEdit_47 = QLineEdit(self.tab_6)
        self.lineEdit_47.setObjectName(u"lineEdit_47")
        self.lineEdit_47.setGeometry(QRect(410, 170, 101, 20))
        self.lineEdit_47.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_47.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.lineEdit_48 = QLineEdit(self.tab_6)
        self.lineEdit_48.setObjectName(u"lineEdit_48")
        self.lineEdit_48.setGeometry(QRect(590, 170, 101, 20))
        self.lineEdit_48.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_48.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.label_70 = QLabel(self.tab_6)
        self.label_70.setObjectName(u"label_70")
        self.label_70.setGeometry(QRect(520, 170, 21, 16))
        self.pushButton_39 = QPushButton(self.tab_6)
        self.pushButton_39.setObjectName(u"pushButton_39")
        self.pushButton_39.setGeometry(QRect(750, 170, 75, 24))
        self.pushButton_39.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.label_71 = QLabel(self.tab_6)
        self.label_71.setObjectName(u"label_71")
        self.label_71.setGeometry(QRect(340, 170, 21, 16))
        self.lineEdit_49 = QLineEdit(self.tab_6)
        self.lineEdit_49.setObjectName(u"lineEdit_49")
        self.lineEdit_49.setGeometry(QRect(230, 170, 101, 20))
        self.lineEdit_49.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_49.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.label_72 = QLabel(self.tab_6)
        self.label_72.setObjectName(u"label_72")
        self.label_72.setGeometry(QRect(960, 170, 131, 16))
        self.label_73 = QLabel(self.tab_6)
        self.label_73.setObjectName(u"label_73")
        self.label_73.setGeometry(QRect(1230, 170, 21, 16))
        self.pushButton_40 = QPushButton(self.tab_6)
        self.pushButton_40.setObjectName(u"pushButton_40")
        self.pushButton_40.setGeometry(QRect(1290, 170, 75, 24))
        self.pushButton_40.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.lineEdit_50 = QLineEdit(self.tab_6)
        self.lineEdit_50.setObjectName(u"lineEdit_50")
        self.lineEdit_50.setGeometry(QRect(1110, 170, 101, 20))
        self.lineEdit_50.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_50.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.line_25 = QFrame(self.tab_6)
        self.line_25.setObjectName(u"line_25")
        self.line_25.setGeometry(QRect(10, 210, 1501, 16))
        self.line_25.setFrameShape(QFrame.HLine)
        self.line_25.setFrameShadow(QFrame.Sunken)
        self.line_26 = QFrame(self.tab_6)
        self.line_26.setObjectName(u"line_26")
        self.line_26.setGeometry(QRect(890, 160, 31, 51))
        self.line_26.setFrameShape(QFrame.VLine)
        self.line_26.setFrameShadow(QFrame.Sunken)
        self.label_74 = QLabel(self.tab_6)
        self.label_74.setObjectName(u"label_74")
        self.label_74.setGeometry(QRect(980, 260, 21, 16))
        self.label_75 = QLabel(self.tab_6)
        self.label_75.setObjectName(u"label_75")
        self.label_75.setGeometry(QRect(740, 300, 54, 16))
        self.label_76 = QLabel(self.tab_6)
        self.label_76.setObjectName(u"label_76")
        self.label_76.setGeometry(QRect(1340, 260, 21, 16))
        self.pushButton_41 = QPushButton(self.tab_6)
        self.pushButton_41.setObjectName(u"pushButton_41")
        self.pushButton_41.setGeometry(QRect(1080, 490, 75, 24))
        self.pushButton_41.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.lineEdit_51 = QLineEdit(self.tab_6)
        self.lineEdit_51.setObjectName(u"lineEdit_51")
        self.lineEdit_51.setGeometry(QRect(1050, 260, 101, 20))
        self.lineEdit_51.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_51.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.lineEdit_52 = QLineEdit(self.tab_6)
        self.lineEdit_52.setObjectName(u"lineEdit_52")
        self.lineEdit_52.setGeometry(QRect(820, 300, 661, 20))
        self.lineEdit_52.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.label_77 = QLabel(self.tab_6)
        self.label_77.setObjectName(u"label_77")
        self.label_77.setGeometry(QRect(740, 350, 54, 16))
        self.lineEdit_53 = QLineEdit(self.tab_6)
        self.lineEdit_53.setObjectName(u"lineEdit_53")
        self.lineEdit_53.setGeometry(QRect(820, 400, 661, 20))
        self.lineEdit_53.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.label_78 = QLabel(self.tab_6)
        self.label_78.setObjectName(u"label_78")
        self.label_78.setGeometry(QRect(1160, 260, 21, 16))
        self.lineEdit_54 = QLineEdit(self.tab_6)
        self.lineEdit_54.setObjectName(u"lineEdit_54")
        self.lineEdit_54.setGeometry(QRect(1230, 260, 101, 20))
        self.lineEdit_54.setStyleSheet(u"background-color: rgb(175, 177, 179);\n"
"color: rgb(0, 0, 0);")
        self.lineEdit_54.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.label_79 = QLabel(self.tab_6)
        self.label_79.setObjectName(u"label_79")
        self.label_79.setGeometry(QRect(740, 400, 54, 16))
        self.label_80 = QLabel(self.tab_6)
        self.label_80.setObjectName(u"label_80")
        self.label_80.setGeometry(QRect(740, 260, 54, 16))
        self.lineEdit_55 = QLineEdit(self.tab_6)
        self.lineEdit_55.setObjectName(u"lineEdit_55")
        self.lineEdit_55.setGeometry(QRect(870, 260, 101, 20))
        self.lineEdit_55.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_55.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.lineEdit_56 = QLineEdit(self.tab_6)
        self.lineEdit_56.setObjectName(u"lineEdit_56")
        self.lineEdit_56.setGeometry(QRect(820, 350, 661, 20))
        self.lineEdit_56.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.line_27 = QFrame(self.tab_6)
        self.line_27.setObjectName(u"line_27")
        self.line_27.setGeometry(QRect(690, 220, 31, 301))
        self.line_27.setFrameShape(QFrame.VLine)
        self.line_27.setFrameShadow(QFrame.Sunken)
        self.label_81 = QLabel(self.tab_6)
        self.label_81.setObjectName(u"label_81")
        self.label_81.setGeometry(QRect(1060, 230, 101, 16))
        self.line_28 = QFrame(self.tab_6)
        self.line_28.setObjectName(u"line_28")
        self.line_28.setGeometry(QRect(10, 520, 1501, 20))
        self.line_28.setFrameShape(QFrame.HLine)
        self.line_28.setFrameShadow(QFrame.Sunken)
        self.lineEdit_57 = QLineEdit(self.tab_6)
        self.lineEdit_57.setObjectName(u"lineEdit_57")
        self.lineEdit_57.setGeometry(QRect(490, 260, 101, 20))
        self.lineEdit_57.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_57.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.lineEdit_58 = QLineEdit(self.tab_6)
        self.lineEdit_58.setObjectName(u"lineEdit_58")
        self.lineEdit_58.setGeometry(QRect(310, 260, 101, 20))
        self.lineEdit_58.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_58.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.label_82 = QLabel(self.tab_6)
        self.label_82.setObjectName(u"label_82")
        self.label_82.setGeometry(QRect(70, 260, 54, 16))
        self.label_83 = QLabel(self.tab_6)
        self.label_83.setObjectName(u"label_83")
        self.label_83.setGeometry(QRect(600, 260, 21, 16))
        self.label_84 = QLabel(self.tab_6)
        self.label_84.setObjectName(u"label_84")
        self.label_84.setGeometry(QRect(420, 260, 21, 16))
        self.lineEdit_59 = QLineEdit(self.tab_6)
        self.lineEdit_59.setObjectName(u"lineEdit_59")
        self.lineEdit_59.setGeometry(QRect(130, 260, 101, 20))
        self.lineEdit_59.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_59.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.label_85 = QLabel(self.tab_6)
        self.label_85.setObjectName(u"label_85")
        self.label_85.setGeometry(QRect(280, 230, 111, 16))
        self.label_86 = QLabel(self.tab_6)
        self.label_86.setObjectName(u"label_86")
        self.label_86.setGeometry(QRect(240, 260, 21, 16))
        self.pushButton_42 = QPushButton(self.tab_6)
        self.pushButton_42.setObjectName(u"pushButton_42")
        self.pushButton_42.setGeometry(QRect(290, 300, 75, 24))
        self.pushButton_42.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.line_29 = QFrame(self.tab_6)
        self.line_29.setObjectName(u"line_29")
        self.line_29.setGeometry(QRect(10, 350, 681, 16))
        self.line_29.setFrameShape(QFrame.HLine)
        self.line_29.setFrameShadow(QFrame.Sunken)
        self.comboBox_5 = QComboBox(self.tab_6)
        self.comboBox_5.addItem("")
        self.comboBox_5.addItem("")
        self.comboBox_5.addItem("")
        self.comboBox_5.addItem("")
        self.comboBox_5.addItem("")
        self.comboBox_5.addItem("")
        self.comboBox_5.addItem("")
        self.comboBox_5.addItem("")
        self.comboBox_5.addItem("")
        self.comboBox_5.addItem("")
        self.comboBox_5.addItem("")
        self.comboBox_5.addItem("")
        self.comboBox_5.setObjectName(u"comboBox_5")
        self.comboBox_5.setGeometry(QRect(350, 430, 101, 22))
        self.comboBox_5.setLayoutDirection(Qt.RightToLeft)
        self.comboBox_5.setStyleSheet(u"background-color: rgb(175, 177, 179);\n"
"color: rgb(0, 0, 0);")
        self.pushButton_43 = QPushButton(self.tab_6)
        self.pushButton_43.setObjectName(u"pushButton_43")
        self.pushButton_43.setGeometry(QRect(280, 480, 75, 24))
        self.pushButton_43.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.lineEdit_60 = QLineEdit(self.tab_6)
        self.lineEdit_60.setObjectName(u"lineEdit_60")
        self.lineEdit_60.setGeometry(QRect(170, 430, 101, 20))
        self.lineEdit_60.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_60.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.label_87 = QLabel(self.tab_6)
        self.label_87.setObjectName(u"label_87")
        self.label_87.setGeometry(QRect(260, 380, 121, 16))
        self.label_88 = QLabel(self.tab_6)
        self.label_88.setObjectName(u"label_88")
        self.label_88.setGeometry(QRect(280, 430, 21, 16))
        self.label_89 = QLabel(self.tab_6)
        self.label_89.setObjectName(u"label_89")
        self.label_89.setGeometry(QRect(460, 430, 21, 16))
        self.label_90 = QLabel(self.tab_6)
        self.label_90.setObjectName(u"label_90")
        self.label_90.setGeometry(QRect(480, 630, 54, 16))
        self.lineEdit_61 = QLineEdit(self.tab_6)
        self.lineEdit_61.setObjectName(u"lineEdit_61")
        self.lineEdit_61.setGeometry(QRect(590, 630, 101, 20))
        self.lineEdit_61.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.lineEdit_61.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
        self.comboBox_6 = QComboBox(self.tab_6)
        self.comboBox_6.addItem("")
        self.comboBox_6.addItem("")
        self.comboBox_6.addItem("")
        self.comboBox_6.addItem("")
        self.comboBox_6.setObjectName(u"comboBox_6")
        self.comboBox_6.setGeometry(QRect(770, 630, 101, 22))
        self.comboBox_6.setStyleSheet(u"background-color: rgb(175, 177, 179);\n"
"color: rgb(0, 0, 0);")
        self.label_91 = QLabel(self.tab_6)
        self.label_91.setObjectName(u"label_91")
        self.label_91.setGeometry(QRect(700, 630, 21, 16))
        self.pushButton_44 = QPushButton(self.tab_6)
        self.pushButton_44.setObjectName(u"pushButton_44")
        self.pushButton_44.setGeometry(QRect(960, 630, 75, 24))
        self.pushButton_44.setStyleSheet(u"background-color: rgb(43, 43, 43);")
        self.label_92 = QLabel(self.tab_6)
        self.label_92.setObjectName(u"label_92")
        self.label_92.setGeometry(QRect(740, 450, 61, 16))
        self.lineEdit_62 = QLineEdit(self.tab_6)
        self.lineEdit_62.setObjectName(u"lineEdit_62")
        self.lineEdit_62.setGeometry(QRect(820, 450, 661, 20))
        self.lineEdit_62.setStyleSheet(u"color: rgb(0, 0, 0);\n"
"background-color: rgb(175, 177, 179);")
        self.tabWidget.addTab(self.tab_6, "")

        self.retranslateUi(Form)

        self.tabWidget.setCurrentIndex(0)


        QMetaObject.connectSlotsByName(Form)
    # setupUi

    def retranslateUi(self, Form):
        Form.setWindowTitle(QCoreApplication.translate("Form", u"\u8d44\u91d1\u7ba1\u7406\u7cfb\u7edf", None))
        self.label.setText(QCoreApplication.translate("Form", u"\u7c7b\u578b\u540d:", None))
        self.pushButton.setText(QCoreApplication.translate("Form", u"\u786e\u5b9a\u63d2\u5165", None))
        self.pushButton_2.setText(QCoreApplication.translate("Form", u"\u67e5\u8be2\u7c7b\u578b", None))
        ___qtablewidgetitem = self.tableWidget.horizontalHeaderItem(0)
        ___qtablewidgetitem.setText(QCoreApplication.translate("Form", u"\u7c7b\u578b", None));
        self.label_6.setText(QCoreApplication.translate("Form", u"\u5e74", None))
        self.label_5.setText(QCoreApplication.translate("Form", u"\u7c7b\u578b:", None))
        self.label_4.setText(QCoreApplication.translate("Form", u"\u5907\u6ce8:", None))
        self.label_2.setText(QCoreApplication.translate("Form", u"\u65e5\u671f:", None))
        self.label_3.setText(QCoreApplication.translate("Form", u"\u91d1\u989d/\u5143:", None))
        self.pushButton_3.setText(QCoreApplication.translate("Form", u"\u786e\u5b9a\u63d2\u5165", None))
        self.label_7.setText(QCoreApplication.translate("Form", u"\u6708", None))
        self.label_8.setText(QCoreApplication.translate("Form", u"\u65e5", None))
        self.lineEdit_5.setText("")
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), QCoreApplication.translate("Form", u"\u63d2\u5165\u9879", None))
        self.pushButton_4.setText(QCoreApplication.translate("Form", u"\u67e5\u8be2", None))
        ___qtablewidgetitem1 = self.tableWidget_2.horizontalHeaderItem(0)
        ___qtablewidgetitem1.setText(QCoreApplication.translate("Form", u"\u65e5\u671f", None));
        ___qtablewidgetitem2 = self.tableWidget_2.horizontalHeaderItem(1)
        ___qtablewidgetitem2.setText(QCoreApplication.translate("Form", u"\u91d1\u989d/\u5143", None));
        ___qtablewidgetitem3 = self.tableWidget_2.horizontalHeaderItem(2)
        ___qtablewidgetitem3.setText(QCoreApplication.translate("Form", u"\u5907\u6ce8", None));
        ___qtablewidgetitem4 = self.tableWidget_2.horizontalHeaderItem(3)
        ___qtablewidgetitem4.setText(QCoreApplication.translate("Form", u"\u7c7b\u578b", None));
        ___qtablewidgetitem5 = self.tableWidget_2.horizontalHeaderItem(4)
        ___qtablewidgetitem5.setText(QCoreApplication.translate("Form", u"\u4f59\u989d/\u5143", None));
        self.label_22.setText(QCoreApplication.translate("Form", u"\u67e5\u770b\u6240\u6709\u8d26\u5355", None))
        self.label_23.setText(QCoreApplication.translate("Form", u"\u67e5\u770b\u6307\u5b9a\u7c7b\u578b\u7684\u8d26\u5355", None))
        self.pushButton_9.setText(QCoreApplication.translate("Form", u"\u67e5\u8be2", None))
        ___qtablewidgetitem6 = self.tableWidget_5.horizontalHeaderItem(0)
        ___qtablewidgetitem6.setText(QCoreApplication.translate("Form", u"\u65e5\u671f", None));
        ___qtablewidgetitem7 = self.tableWidget_5.horizontalHeaderItem(1)
        ___qtablewidgetitem7.setText(QCoreApplication.translate("Form", u"\u91d1\u989d/\u5143", None));
        ___qtablewidgetitem8 = self.tableWidget_5.horizontalHeaderItem(2)
        ___qtablewidgetitem8.setText(QCoreApplication.translate("Form", u"\u5907\u6ce8", None));
        ___qtablewidgetitem9 = self.tableWidget_5.horizontalHeaderItem(3)
        ___qtablewidgetitem9.setText(QCoreApplication.translate("Form", u"\u7c7b\u578b", None));
        self.lineEdit_17.setPlaceholderText(QCoreApplication.translate("Form", u"\u8bf7\u8f93\u5165\u60f3\u8981\u67e5\u8be2\u7684\u7c7b\u578b", None))
        self.label_25.setText(QCoreApplication.translate("Form", u"\u67e5\u770b\u6307\u5b9a\u5e74\u4efd\u7684\u8d26\u5355", None))
        self.pushButton_11.setText(QCoreApplication.translate("Form", u"\u67e5\u8be2", None))
        ___qtablewidgetitem10 = self.tableWidget_8.horizontalHeaderItem(0)
        ___qtablewidgetitem10.setText(QCoreApplication.translate("Form", u"\u65e5\u671f", None));
        ___qtablewidgetitem11 = self.tableWidget_8.horizontalHeaderItem(1)
        ___qtablewidgetitem11.setText(QCoreApplication.translate("Form", u"\u91d1\u989d/\u5143", None));
        ___qtablewidgetitem12 = self.tableWidget_8.horizontalHeaderItem(2)
        ___qtablewidgetitem12.setText(QCoreApplication.translate("Form", u"\u5907\u6ce8", None));
        ___qtablewidgetitem13 = self.tableWidget_8.horizontalHeaderItem(3)
        ___qtablewidgetitem13.setText(QCoreApplication.translate("Form", u"\u7c7b\u578b", None));
        ___qtablewidgetitem14 = self.tableWidget_8.horizontalHeaderItem(4)
        ___qtablewidgetitem14.setText(QCoreApplication.translate("Form", u"\u4f59\u989d/\u5143", None));
        self.lineEdit_18.setPlaceholderText(QCoreApplication.translate("Form", u"\u8bf7\u8f93\u5165\u60f3\u8981\u67e5\u8be2\u7684\u5e74\u4efd", None))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), QCoreApplication.translate("Form", u"\u67e5\u770b\u8d26\u5355\u8be6\u60c5", None))
        self.pushButton_5.setText(QCoreApplication.translate("Form", u"\u786e\u8ba4\u63d2\u5165", None))
        self.label_10.setText(QCoreApplication.translate("Form", u"\u5e74", None))
        self.label_12.setText(QCoreApplication.translate("Form", u"\u6708", None))
        self.label_9.setText(QCoreApplication.translate("Form", u"\u63d2\u5165\u5929", None))
        self.label_11.setText(QCoreApplication.translate("Form", u"\u65e5", None))
        self.pushButton_6.setText(QCoreApplication.translate("Form", u"\u67e5\u8be2\u6bcf\u5929\u8d26\u5355", None))
        ___qtablewidgetitem15 = self.tableWidget_3.horizontalHeaderItem(0)
        ___qtablewidgetitem15.setText(QCoreApplication.translate("Form", u"\u65e5\u671f", None));
        ___qtablewidgetitem16 = self.tableWidget_3.horizontalHeaderItem(1)
        ___qtablewidgetitem16.setText(QCoreApplication.translate("Form", u"\u65e5\u652f\u51fa\u603b\u989d/\u5143", None));
        ___qtablewidgetitem17 = self.tableWidget_3.horizontalHeaderItem(2)
        ___qtablewidgetitem17.setText(QCoreApplication.translate("Form", u"\u65e5\u652f\u51fa\u8be6\u60c5", None));
        ___qtablewidgetitem18 = self.tableWidget_3.horizontalHeaderItem(3)
        ___qtablewidgetitem18.setText(QCoreApplication.translate("Form", u"\u65e5\u6536\u5165\u603b\u989d/\u5143", None));
        ___qtablewidgetitem19 = self.tableWidget_3.horizontalHeaderItem(4)
        ___qtablewidgetitem19.setText(QCoreApplication.translate("Form", u"\u65e5\u6536\u5165\u8be6\u60c5", None));
        ___qtablewidgetitem20 = self.tableWidget_9.horizontalHeaderItem(0)
        ___qtablewidgetitem20.setText(QCoreApplication.translate("Form", u"\u65e5\u671f", None));
        ___qtablewidgetitem21 = self.tableWidget_9.horizontalHeaderItem(1)
        ___qtablewidgetitem21.setText(QCoreApplication.translate("Form", u"\u65e5\u652f\u51fa\u603b\u989d/\u5143", None));
        ___qtablewidgetitem22 = self.tableWidget_9.horizontalHeaderItem(2)
        ___qtablewidgetitem22.setText(QCoreApplication.translate("Form", u"\u65e5\u652f\u51fa\u8be6\u60c5", None));
        ___qtablewidgetitem23 = self.tableWidget_9.horizontalHeaderItem(3)
        ___qtablewidgetitem23.setText(QCoreApplication.translate("Form", u"\u65e5\u6536\u5165\u603b\u989d/\u5143", None));
        ___qtablewidgetitem24 = self.tableWidget_9.horizontalHeaderItem(4)
        ___qtablewidgetitem24.setText(QCoreApplication.translate("Form", u"\u65e5\u6536\u5165\u8be6\u60c5", None));
        self.pushButton_12.setText(QCoreApplication.translate("Form", u"\u67e5\u8be2", None))
        self.lineEdit_14.setPlaceholderText(QCoreApplication.translate("Form", u"\u8bf7\u8f93\u5165\u5e74\u4efd", None))
        self.label_18.setText(QCoreApplication.translate("Form", u"\u67e5\u8be2\u6307\u5b9a\u5e74\u7684\u8d26\u5355", None))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), QCoreApplication.translate("Form", u"\u4ee5\u201c\u5929\u201d\u4e3a\u5355\u4f4d", None))
        ___qtablewidgetitem25 = self.tableWidget_4.horizontalHeaderItem(0)
        ___qtablewidgetitem25.setText(QCoreApplication.translate("Form", u"\u65e5\u671f\u8303\u56f4", None));
        ___qtablewidgetitem26 = self.tableWidget_4.horizontalHeaderItem(1)
        ___qtablewidgetitem26.setText(QCoreApplication.translate("Form", u"\u5468\u652f\u51fa\u603b\u989d/\u5143", None));
        ___qtablewidgetitem27 = self.tableWidget_4.horizontalHeaderItem(2)
        ___qtablewidgetitem27.setText(QCoreApplication.translate("Form", u"\u5468\u6bcf\u5929\u5e73\u5747\u652f\u51fa/\u5143", None));
        ___qtablewidgetitem28 = self.tableWidget_4.horizontalHeaderItem(3)
        ___qtablewidgetitem28.setText(QCoreApplication.translate("Form", u"\u5468\u6536\u5165\u603b\u989d/\u5143", None));
        ___qtablewidgetitem29 = self.tableWidget_4.horizontalHeaderItem(4)
        ___qtablewidgetitem29.setText(QCoreApplication.translate("Form", u"\u5468\u6bcf\u5929\u5e73\u5747\u6536\u5165/\u5143", None));
        ___qtablewidgetitem30 = self.tableWidget_4.horizontalHeaderItem(5)
        ___qtablewidgetitem30.setText(QCoreApplication.translate("Form", u"\u5468\u652f\u51fa\u5360\u6bd4", None));
        ___qtablewidgetitem31 = self.tableWidget_4.horizontalHeaderItem(6)
        ___qtablewidgetitem31.setText(QCoreApplication.translate("Form", u"\u5468\u6536\u5165\u5360\u6bd4", None));
        self.pushButton_7.setText(QCoreApplication.translate("Form", u"\u786e\u5b9a\u63d2\u5165", None))
        self.label_13.setText(QCoreApplication.translate("Form", u"\u63d2\u5165\u5468", None))
        self.label_14.setText(QCoreApplication.translate("Form", u"\u6708", None))
        self.label_15.setText(QCoreApplication.translate("Form", u"\u65e5", None))
        self.label_16.setText(QCoreApplication.translate("Form", u"\u5e74", None))
        self.lineEdit_13.setPlaceholderText(QCoreApplication.translate("Form", u"\u8be5\u5929\u5fc5\u987b\u662f\u5468\u4e00", None))
        self.label_17.setText(QCoreApplication.translate("Form", u"\u8d77\u59cb\u65e5\u671f:", None))
        self.pushButton_8.setText(QCoreApplication.translate("Form", u"\u67e5\u8be2\u8be6\u60c5", None))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), QCoreApplication.translate("Form", u"\u4ee5\u201c\u5468\u201d\u4e3a\u5355\u4f4d", None))
        self.pushButton_10.setText(QCoreApplication.translate("Form", u"\u786e\u5b9a\u63d2\u5165", None))
        self.label_19.setText(QCoreApplication.translate("Form", u"\u63d2\u5165\u6708", None))
        self.label_20.setText(QCoreApplication.translate("Form", u"\u5e74", None))
        self.label_21.setText(QCoreApplication.translate("Form", u"\u6708", None))
        self.pushButton_25.setText(QCoreApplication.translate("Form", u"\u67e5\u8be2\u8be6\u60c5", None))
        ___qtablewidgetitem32 = self.tableWidget_15.horizontalHeaderItem(0)
        ___qtablewidgetitem32.setText(QCoreApplication.translate("Form", u"\u6708\u4efd", None));
        ___qtablewidgetitem33 = self.tableWidget_15.horizontalHeaderItem(1)
        ___qtablewidgetitem33.setText(QCoreApplication.translate("Form", u"\u6708\u652f\u51fa\u603b\u989d/\u5143", None));
        ___qtablewidgetitem34 = self.tableWidget_15.horizontalHeaderItem(2)
        ___qtablewidgetitem34.setText(QCoreApplication.translate("Form", u"\u6708\u6bcf\u5929\u5e73\u5747\u652f\u51fa/\u5143", None));
        ___qtablewidgetitem35 = self.tableWidget_15.horizontalHeaderItem(3)
        ___qtablewidgetitem35.setText(QCoreApplication.translate("Form", u"\u6708\u6536\u5165\u603b\u989d/\u5143", None));
        ___qtablewidgetitem36 = self.tableWidget_15.horizontalHeaderItem(4)
        ___qtablewidgetitem36.setText(QCoreApplication.translate("Form", u"\u6708\u6bcf\u5929\u5e73\u5747\u6536\u5165/\u5143", None));
        ___qtablewidgetitem37 = self.tableWidget_15.horizontalHeaderItem(5)
        ___qtablewidgetitem37.setText(QCoreApplication.translate("Form", u"\u6708\u652f\u51fa\u5360\u6bd4", None));
        ___qtablewidgetitem38 = self.tableWidget_15.horizontalHeaderItem(6)
        ___qtablewidgetitem38.setText(QCoreApplication.translate("Form", u"\u6708\u6536\u5165\u5360\u6bd4", None));
        self.comboBox_2.setItemText(0, QCoreApplication.translate("Form", u"1", None))
        self.comboBox_2.setItemText(1, QCoreApplication.translate("Form", u"2", None))
        self.comboBox_2.setItemText(2, QCoreApplication.translate("Form", u"3", None))
        self.comboBox_2.setItemText(3, QCoreApplication.translate("Form", u"4", None))
        self.comboBox_2.setItemText(4, QCoreApplication.translate("Form", u"5", None))
        self.comboBox_2.setItemText(5, QCoreApplication.translate("Form", u"6", None))
        self.comboBox_2.setItemText(6, QCoreApplication.translate("Form", u"7", None))
        self.comboBox_2.setItemText(7, QCoreApplication.translate("Form", u"8", None))
        self.comboBox_2.setItemText(8, QCoreApplication.translate("Form", u"9", None))
        self.comboBox_2.setItemText(9, QCoreApplication.translate("Form", u"10", None))
        self.comboBox_2.setItemText(10, QCoreApplication.translate("Form", u"11", None))
        self.comboBox_2.setItemText(11, QCoreApplication.translate("Form", u"12", None))

        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_5), QCoreApplication.translate("Form", u"\u4ee5\u201c\u6708\u201d\u4e3a\u5355\u4f4d", None))
        self.label_49.setText(QCoreApplication.translate("Form", u"\u63d2\u5165\u5b63\u5ea6", None))
        self.label_50.setText(QCoreApplication.translate("Form", u"\u5e74", None))
        self.comboBox.setItemText(0, QCoreApplication.translate("Form", u"\u7b2c\u4e00\u5b63\u5ea6", None))
        self.comboBox.setItemText(1, QCoreApplication.translate("Form", u"\u7b2c\u4e8c\u5b63\u5ea6", None))
        self.comboBox.setItemText(2, QCoreApplication.translate("Form", u"\u7b2c\u4e09\u5b63\u5ea6", None))
        self.comboBox.setItemText(3, QCoreApplication.translate("Form", u"\u7b2c\u56db\u5b63\u5ea6", None))

        self.pushButton_26.setText(QCoreApplication.translate("Form", u"\u786e\u5b9a\u63d2\u5165", None))
        self.pushButton_27.setText(QCoreApplication.translate("Form", u"\u67e5\u8be2\u8be6\u60c5", None))
        ___qtablewidgetitem39 = self.tableWidget_16.horizontalHeaderItem(0)
        ___qtablewidgetitem39.setText(QCoreApplication.translate("Form", u"\u5b63\u5ea6", None));
        ___qtablewidgetitem40 = self.tableWidget_16.horizontalHeaderItem(1)
        ___qtablewidgetitem40.setText(QCoreApplication.translate("Form", u"\u5b63\u5ea6\u652f\u51fa\u603b\u989d/\u5143", None));
        ___qtablewidgetitem41 = self.tableWidget_16.horizontalHeaderItem(2)
        ___qtablewidgetitem41.setText(QCoreApplication.translate("Form", u"\u5b63\u5ea6\u6bcf\u5929\u5e73\u5747\u652f\u51fa/\u5143", None));
        ___qtablewidgetitem42 = self.tableWidget_16.horizontalHeaderItem(3)
        ___qtablewidgetitem42.setText(QCoreApplication.translate("Form", u"\u5b63\u5ea6\u6536\u5165\u603b\u989d/\u5143", None));
        ___qtablewidgetitem43 = self.tableWidget_16.horizontalHeaderItem(4)
        ___qtablewidgetitem43.setText(QCoreApplication.translate("Form", u"\u5b63\u5ea6\u6bcf\u5929\u5e73\u5747\u6536\u5165/\u5143", None));
        ___qtablewidgetitem44 = self.tableWidget_16.horizontalHeaderItem(5)
        ___qtablewidgetitem44.setText(QCoreApplication.translate("Form", u"\u5b63\u5ea6\u652f\u51fa\u5360\u6bd4", None));
        ___qtablewidgetitem45 = self.tableWidget_16.horizontalHeaderItem(6)
        ___qtablewidgetitem45.setText(QCoreApplication.translate("Form", u"\u5b63\u5ea6\u6536\u5165\u5360\u6bd4", None));
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_11), QCoreApplication.translate("Form", u"\u4ee5\u201c\u5b63\u5ea6\u201d\u4e3a\u5355\u4f4d", None))
        self.label_51.setText(QCoreApplication.translate("Form", u"\u63d2\u5165\u5e74", None))
        self.pushButton_28.setText(QCoreApplication.translate("Form", u"\u67e5\u8be2\u8be6\u60c5", None))
        self.label_52.setText(QCoreApplication.translate("Form", u"\u5e74", None))
        ___qtablewidgetitem46 = self.tableWidget_17.horizontalHeaderItem(0)
        ___qtablewidgetitem46.setText(QCoreApplication.translate("Form", u"\u5e74", None));
        ___qtablewidgetitem47 = self.tableWidget_17.horizontalHeaderItem(1)
        ___qtablewidgetitem47.setText(QCoreApplication.translate("Form", u"\u5e74\u652f\u51fa\u603b\u989d/\u5143", None));
        ___qtablewidgetitem48 = self.tableWidget_17.horizontalHeaderItem(2)
        ___qtablewidgetitem48.setText(QCoreApplication.translate("Form", u"\u5e74\u6bcf\u5929\u5e73\u5747\u652f\u51fa/\u5143", None));
        ___qtablewidgetitem49 = self.tableWidget_17.horizontalHeaderItem(3)
        ___qtablewidgetitem49.setText(QCoreApplication.translate("Form", u"\u5e74\u6536\u5165\u603b\u989d/\u5143", None));
        ___qtablewidgetitem50 = self.tableWidget_17.horizontalHeaderItem(4)
        ___qtablewidgetitem50.setText(QCoreApplication.translate("Form", u"\u5e74\u6bcf\u5929\u5e73\u5747\u6536\u5165/\u5143", None));
        ___qtablewidgetitem51 = self.tableWidget_17.horizontalHeaderItem(5)
        ___qtablewidgetitem51.setText(QCoreApplication.translate("Form", u"\u5e74\u652f\u51fa\u5360\u6bd4", None));
        ___qtablewidgetitem52 = self.tableWidget_17.horizontalHeaderItem(6)
        ___qtablewidgetitem52.setText(QCoreApplication.translate("Form", u"\u5e74\u6536\u5165\u5360\u6bd4", None));
        self.pushButton_29.setText(QCoreApplication.translate("Form", u"\u786e\u5b9a\u63d2\u5165", None))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_12), QCoreApplication.translate("Form", u"\u4ee5\u201c\u5e74\u201d\u4e3a\u5355\u4f4d", None))
        self.label_24.setText(QCoreApplication.translate("Form", u"\u5220\u9664\u67d0\u4e00\u7c7b\u578b\uff1a", None))
        self.lineEdit_16.setPlaceholderText(QCoreApplication.translate("Form", u"\u8bf7\u8f93\u5165\u7c7b\u578b\u540d", None))
        self.pushButton_13.setText(QCoreApplication.translate("Form", u"\u786e\u5b9a\u5220\u9664", None))
        self.label_26.setText(QCoreApplication.translate("Form", u"\u5220\u9664\u67d0\u4e00\u5929\u7684\u6240\u6709\u8d26\u5355\u9879:", None))
        self.label_27.setText(QCoreApplication.translate("Form", u"\u6708", None))
        self.pushButton_14.setText(QCoreApplication.translate("Form", u"\u786e\u8ba4\u5220\u9664", None))
        self.label_28.setText(QCoreApplication.translate("Form", u"\u5e74", None))
        self.label_29.setText(QCoreApplication.translate("Form", u"\u65e5", None))
        self.label_30.setText(QCoreApplication.translate("Form", u"\u5220\u9664\u67d0\u4e00\u5929\u7684\u8d26\u5355:", None))
        self.label_69.setText(QCoreApplication.translate("Form", u"\u65e5", None))
        self.label_70.setText(QCoreApplication.translate("Form", u"\u6708", None))
        self.pushButton_39.setText(QCoreApplication.translate("Form", u"\u786e\u8ba4\u5220\u9664", None))
        self.label_71.setText(QCoreApplication.translate("Form", u"\u5e74", None))
        self.label_72.setText(QCoreApplication.translate("Form", u"\u5220\u9664\u67d0\u4e00\u5e74\u7684\u8d26\u5355:", None))
        self.label_73.setText(QCoreApplication.translate("Form", u"\u5e74", None))
        self.pushButton_40.setText(QCoreApplication.translate("Form", u"\u786e\u8ba4\u5220\u9664", None))
        self.label_74.setText(QCoreApplication.translate("Form", u"\u5e74", None))
        self.label_75.setText(QCoreApplication.translate("Form", u"\u91d1\u989d/\u5143:", None))
        self.label_76.setText(QCoreApplication.translate("Form", u"\u65e5", None))
        self.pushButton_41.setText(QCoreApplication.translate("Form", u"\u786e\u5b9a\u5220\u9664", None))
        self.label_77.setText(QCoreApplication.translate("Form", u"\u5907\u6ce8:", None))
        self.lineEdit_53.setText("")
        self.label_78.setText(QCoreApplication.translate("Form", u"\u6708", None))
        self.label_79.setText(QCoreApplication.translate("Form", u"\u7c7b\u578b:", None))
        self.label_80.setText(QCoreApplication.translate("Form", u"\u65e5\u671f:", None))
        self.label_81.setText(QCoreApplication.translate("Form", u"\u5220\u9664\u67d0\u4e00\u8d26\u5355\u9879:", None))
        self.lineEdit_57.setPlaceholderText(QCoreApplication.translate("Form", u"\u8be5\u5929\u5fc5\u987b\u662f\u5468\u4e00", None))
        self.label_82.setText(QCoreApplication.translate("Form", u"\u8d77\u59cb\u65e5\u671f:", None))
        self.label_83.setText(QCoreApplication.translate("Form", u"\u65e5", None))
        self.label_84.setText(QCoreApplication.translate("Form", u"\u6708", None))
        self.label_85.setText(QCoreApplication.translate("Form", u"\u5220\u9664\u67d0\u4e00\u5468\u7684\u6570\u636e:", None))
        self.label_86.setText(QCoreApplication.translate("Form", u"\u5e74", None))
        self.pushButton_42.setText(QCoreApplication.translate("Form", u"\u786e\u5b9a\u5220\u9664", None))
        self.comboBox_5.setItemText(0, QCoreApplication.translate("Form", u"1", None))
        self.comboBox_5.setItemText(1, QCoreApplication.translate("Form", u"2", None))
        self.comboBox_5.setItemText(2, QCoreApplication.translate("Form", u"3", None))
        self.comboBox_5.setItemText(3, QCoreApplication.translate("Form", u"4", None))
        self.comboBox_5.setItemText(4, QCoreApplication.translate("Form", u"5", None))
        self.comboBox_5.setItemText(5, QCoreApplication.translate("Form", u"6", None))
        self.comboBox_5.setItemText(6, QCoreApplication.translate("Form", u"7", None))
        self.comboBox_5.setItemText(7, QCoreApplication.translate("Form", u"8", None))
        self.comboBox_5.setItemText(8, QCoreApplication.translate("Form", u"9", None))
        self.comboBox_5.setItemText(9, QCoreApplication.translate("Form", u"10", None))
        self.comboBox_5.setItemText(10, QCoreApplication.translate("Form", u"11", None))
        self.comboBox_5.setItemText(11, QCoreApplication.translate("Form", u"12", None))

        self.pushButton_43.setText(QCoreApplication.translate("Form", u"\u786e\u5b9a\u5220\u9664", None))
        self.label_87.setText(QCoreApplication.translate("Form", u"\u5220\u9664\u67d0\u4e00\u4e2a\u6708\u7684\u6570\u636e:", None))
        self.label_88.setText(QCoreApplication.translate("Form", u"\u5e74", None))
        self.label_89.setText(QCoreApplication.translate("Form", u"\u6708", None))
        self.label_90.setText(QCoreApplication.translate("Form", u"\u5220\u9664\u5b63\u5ea6", None))
        self.comboBox_6.setItemText(0, QCoreApplication.translate("Form", u"\u7b2c\u4e00\u5b63\u5ea6", None))
        self.comboBox_6.setItemText(1, QCoreApplication.translate("Form", u"\u7b2c\u4e8c\u5b63\u5ea6", None))
        self.comboBox_6.setItemText(2, QCoreApplication.translate("Form", u"\u7b2c\u4e09\u5b63\u5ea6", None))
        self.comboBox_6.setItemText(3, QCoreApplication.translate("Form", u"\u7b2c\u56db\u5b63\u5ea6", None))

        self.label_91.setText(QCoreApplication.translate("Form", u"\u5e74", None))
        self.pushButton_44.setText(QCoreApplication.translate("Form", u"\u786e\u5b9a\u5220\u9664", None))
        self.label_92.setText(QCoreApplication.translate("Form", u"\u5269\u4f59\u91d1\u989d:", None))
        self.lineEdit_62.setText("")
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_6), QCoreApplication.translate("Form", u"\u5220\u9664\u6570\u636e", None))
    # retranslateUi


if __name__ == "__main__":
    app = QApplication([])
    win = Ui_mnyman()
    win.show()
    sys.exit(app.exec())

注意

代码中会用到两个图标:

  • 链接:https://pan.baidu.com/s/1APQkblRYjL-IDPagxm3ddQ
    提取码:gj21
  • 链接:https://pan.baidu.com/s/1EM-z9ynENKbI1Fgir-b2Cg
    提取码:gj21
    在这里插入图片描述
    将这两个图标和py源文件放在同一个文件夹下面。

将py程序打包成exe可执行文件
命令行进入py源文件所在的目录下:
使用命令pyinstaller -F -w 源文件名.py
pyinstaller是第三方库,需要pip下载。
使用命令pyinstaller -F -w 源文件名.py --icon="mn.ico"打包出来的exe会带上图标。
在这里插入图片描述

界面

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
涉及一些隐私数据,就不展示使用截图了。有兴趣的小伙伴可以更改代码增加喜欢的功能。

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
【资源介绍】 基于PySide6+Python的企业员工业绩管理系统源码(注释拉满)+项目说明.zip 运行 安装 Python 3 (已在3.8.10上测试通过) 安装 PySide6 python -m pip install pyside6 运行 python main.py 本课题要求编写Python程序实现对员工信息和业绩信息的管理。一个综合的员工业绩管理系统,要求能够管理若干个员工各季度工作业绩,需要实现以下功能:读取以数据文件形式存储的员工信息;可以按工号增加、修改、删除员工的信息;按照工号、姓名、名次等方式查询员工信息;可以按照工号顺序浏览员工信息;可以统计各季度工作的最高业绩、最低业绩和平均业绩;计算每个员工的总业绩并进行排名。 系统内的所有信息必须以文件的方式存储在硬盘中,员工信息文件,存放了员工的工号,姓名,性别,各个季度的业绩,四个季度的总业绩,依据总业绩的排名。格式如下: ```csv B01,Tom,Male,70,80,90,85 B02,Rose,Female,70,80,90,75 B03,Jack,Male,80,90, 95,70 …… ``` ## 2 要求及提示 ### 2.1 基本要求 系统提供的基本功能包括: 1. 系统内的相关信息文件由程序设计人员预先从键盘上录入,文件中的数据记录不得少于20条; 2. 设计并实现系统的相关界面,提供良好的交互界面; 3. 排序功能:能实现由用户选择按各项数据升序或降序排序对查询出的信息进行显示; 4. 可以添加/删除/修改员工信息; 5. 可以添加/删除/修改业绩信息; 6. 查询员工信息: - 输入一个工号,查出此人的基本信息并显示输出。 - 输入一个工号,查询出此员工的所有业绩情况。 7. 查询业绩信息: - 输入一个季度时,查询此季度的最高业绩、最低业绩和平均业绩。 该项目是个人毕设项目,答辩评审分达到95分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白学习、进阶。 该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。 项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 欢迎下载交流,互相学习,共同进步!
Python中使用PySide6实现读取文件时的环形进度条,可以按照以下步骤进行操作: 1. 首先,确保已经安装了PySide6库。可以使用以下命令进行安装: ```shell pip install PySide6 ``` 2. 创建一个Python脚本,并导入必要的模块: ```python from PySide6.QtWidgets import QApplication, QMainWindow, QProgressBar from PySide6.QtCore import Qt, QThread, Signal ``` 3. 创建一个自定义的线程类,用于模拟文件读取的进度: ```python class FileReadThread(QThread): progressChanged = Signal(int) def run(self): total_size = 1000 # 假设文件总大小为1000 for i in range(total_size): self.progressChanged.emit(i) self.msleep(10) # 模拟读取文件的延迟 ``` 4. 创建一个主窗口类,并在其中添加一个环形进度条: ```python class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("文件读取进度") self.resize(300, 200) self.progress_bar = QProgressBar(self) self.progress_bar.setGeometry(50, 50, 200, 200) self.progress_bar.setRange(0, 1000) # 设置进度条的范围 self.file_read_thread = FileReadThread() self.file_read_thread.progressChanged.connect(self.update_progress) self.file_read_thread.start() def update_progress(self, value): self.progress_bar.setValue(value) ``` 5. 创建一个应用程序对象,并运行主窗口: ```python app = QApplication([]) window = MainWindow() window.show() app.exec() ``` 这样,当运行该脚本时,会显示一个带有环形进度条的窗口,进度条会模拟文件读取的进度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Jackey_Song_Odd

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值