├── MyPyQT_Form.py ├── README.md ├── add_admin.py ├── add_dept.py ├── add_profess.py ├── addstaff.py ├── admin.py ├── alter_admin.py ├── alter_dept.py ├── alter_display_dept.py ├── alter_display_staff.py ├── alter_profess.py ├── alter_staff.py ├── checkChange.py ├── checkTable.py ├── db └── personnel_man.sql ├── db_test.py ├── delete_dept.py ├── delete_staff.py ├── dept.py ├── dept_detail.py ├── find_dept.py ├── find_staff.py ├── finde_dept.py ├── images ├── admin.png ├── back.png ├── file.png ├── paper.png ├── search.png ├── search2.png └── welcome.png ├── img_rc.py ├── login.py ├── login_form.py ├── logintest.py ├── mainWindow.py ├── main_interface.py ├── maintest.py ├── personalHistory.py ├── personalNow.py ├── personalTest.py ├── personaldialog.py ├── profess.py ├── pyqt_form.py ├── salaryDialog.py ├── salaryHistoryTable.py ├── salaryNowTable.py ├── staffAdmin.py └── staff_detail.py /MyPyQT_Form.py: -------------------------------------------------------------------------------- 1 | import sys 2 | from PyQt5 import QtWidgets 3 | from pyqt_form import Ui_Form 4 | 5 | class MyPyQt_Form(QtWidgets.QWidget,Ui_Form): 6 | def __init__(self): 7 | super(MyPyQt_Form,self).__init__() 8 | self.setupUi(self) 9 | 10 | def pushButton_click(self): 11 | self.textEdit.setText("你点击按钮了") 12 | if __name__=='__main__': 13 | app = QtWidgets.QApplication(sys.argv) 14 | my_pyqt_form = MyPyQt_Form() 15 | my_pyqt_form.show() 16 | # my_pyqt_form.pushButton. 17 | sys.exit(app.exec_()) 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 数据库实习做的简易人事管理系统 2 | 3 | 所用到的技术有: 4 | Mysql 5 | 6 | python 中的 pyqt5 和 pymysql 7 | 8 | 所实现的功能: 9 | 1.员工管理:查看员工的基本信息,并且能对这些基本信息进行增删改查。可以对员工设置管理员权限,让其拥有成为管理员的权利。 10 | 11 | 2.部门和职位管理:查看当前部门的基本信息,显示部门该部门的人员,并且能对部门进行增删改查。除部门外,也能增加职位。 12 | 13 | 3.人事管理:也简称员工调动,能查看之前员工的调动信息,也能调动人员,并且生成相应员工调动信息。 14 | 15 | 4.考核管理:查询考核历史,并且录入本月该员工的考勤(如:出勤日,请假等) 16 | 17 | 5.薪资管理:对薪资历史进行增改查,并且修改当前员工本月的底薪,奖金和应扣除的金额。也能在该页面发放工资,可以选择单个发放,也可选择一键发放所选择人的工资。 18 | 19 | -------------------------------------------------------------------------------- /add_admin.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'add_admin.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_add_admin(object): 12 | def setupUi(self, add_admin): 13 | add_admin.setObjectName("add_admin") 14 | add_admin.resize(299, 230) 15 | add_admin.setStyleSheet("background-color:#f4f9f4;") 16 | self.pwd = QtWidgets.QLineEdit(add_admin) 17 | self.pwd.setGeometry(QtCore.QRect(110, 100, 121, 31)) 18 | self.pwd.setFocusPolicy(QtCore.Qt.StrongFocus) 19 | self.pwd.setPlaceholderText("") 20 | self.pwd.setObjectName("pwd") 21 | self.pushButton = QtWidgets.QPushButton(add_admin) 22 | self.pushButton.setGeometry(QtCore.QRect(120, 170, 75, 23)) 23 | self.pushButton.setStyleSheet("font:75 10pt \"黑体\";\n" 24 | "color:white;\n" 25 | "background-color:rgb(85,170,127);\n" 26 | "border-radius:3px;") 27 | self.pushButton.setObjectName("pushButton") 28 | self.label = QtWidgets.QLabel(add_admin) 29 | self.label.setGeometry(QtCore.QRect(30, 40, 71, 21)) 30 | self.label.setStyleSheet("font: 11pt \"华文细黑\";") 31 | self.label.setObjectName("label") 32 | self.staff = QtWidgets.QComboBox(add_admin) 33 | self.staff.setGeometry(QtCore.QRect(110, 40, 121, 31)) 34 | self.staff.setObjectName("staff") 35 | self.label_2 = QtWidgets.QLabel(add_admin) 36 | self.label_2.setGeometry(QtCore.QRect(30, 100, 71, 21)) 37 | self.label_2.setStyleSheet("font: 11pt \"华文细黑\";") 38 | self.label_2.setObjectName("label_2") 39 | 40 | self.retranslateUi(add_admin) 41 | self.pushButton.clicked.connect(add_admin.add) 42 | QtCore.QMetaObject.connectSlotsByName(add_admin) 43 | 44 | def retranslateUi(self, add_admin): 45 | _translate = QtCore.QCoreApplication.translate 46 | add_admin.setWindowTitle(_translate("add_admin", "添加管理员")) 47 | self.pushButton.setText(_translate("add_admin", "添加")) 48 | self.label.setText(_translate("add_admin", "选择员工:")) 49 | self.label_2.setText(_translate("add_admin", "设置密码:")) 50 | 51 | -------------------------------------------------------------------------------- /add_dept.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'add_dept.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_add_dept(object): 12 | def setupUi(self, add_dept): 13 | add_dept.setObjectName("add_dept") 14 | add_dept.resize(917, 571) 15 | add_dept.setStyleSheet("background-color:#f4f9f4;") 16 | self.name = QtWidgets.QLineEdit(add_dept) 17 | self.name.setGeometry(QtCore.QRect(440, 140, 121, 31)) 18 | self.name.setObjectName("name") 19 | self.label1 = QtWidgets.QLabel(add_dept) 20 | self.label1.setGeometry(QtCore.QRect(340, 140, 81, 31)) 21 | self.label1.setStyleSheet("font: 12pt \"幼圆\";") 22 | self.label1.setObjectName("label1") 23 | self.pushButton_2 = QtWidgets.QPushButton(add_dept) 24 | self.pushButton_2.setGeometry(QtCore.QRect(350, 330, 75, 23)) 25 | self.pushButton_2.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 26 | self.pushButton_2.setStyleSheet("font:75 10pt \"黑体\";\n" 27 | "color:white;\n" 28 | "background-color:rgb(85,170,127);\n" 29 | "border-radius:3px;") 30 | self.pushButton_2.setObjectName("pushButton_2") 31 | self.pushButton = QtWidgets.QPushButton(add_dept) 32 | self.pushButton.setGeometry(QtCore.QRect(480, 330, 75, 23)) 33 | self.pushButton.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 34 | self.pushButton.setStyleSheet("font:75 10pt \"黑体\";\n" 35 | "color:white;\n" 36 | "background-color:rgb(85,170,127);\n" 37 | "border-radius:3px;") 38 | self.pushButton.setObjectName("pushButton") 39 | self.label2 = QtWidgets.QLabel(add_dept) 40 | self.label2.setGeometry(QtCore.QRect(340, 220, 81, 31)) 41 | self.label2.setStyleSheet("font: 12pt \"幼圆\";") 42 | self.label2.setObjectName("label2") 43 | self.lineEdit = QtWidgets.QLineEdit(add_dept) 44 | self.lineEdit.setGeometry(QtCore.QRect(390, 40, 121, 21)) 45 | self.lineEdit.setStyleSheet("font: 14pt \"华文行楷\";\n" 46 | "color:rgb(80, 126, 59);\n" 47 | "background-color:transparent;\n" 48 | "border:outset;") 49 | self.lineEdit.setObjectName("lineEdit") 50 | self.manager = QtWidgets.QComboBox(add_dept) 51 | self.manager.setGeometry(QtCore.QRect(440, 220, 121, 31)) 52 | self.manager.setObjectName("manager") 53 | self.label1.setBuddy(self.name) 54 | 55 | self.retranslateUi(add_dept) 56 | self.pushButton_2.clicked.connect(add_dept.addDept) 57 | self.pushButton.clicked.connect(add_dept.clearAll) 58 | QtCore.QMetaObject.connectSlotsByName(add_dept) 59 | 60 | def retranslateUi(self, add_dept): 61 | _translate = QtCore.QCoreApplication.translate 62 | add_dept.setWindowTitle(_translate("add_dept", "Form")) 63 | self.name.setPlaceholderText(_translate("add_dept", "不超过10个中文字符")) 64 | self.label1.setText(_translate("add_dept", "部门名称:")) 65 | self.pushButton_2.setText(_translate("add_dept", "添加")) 66 | self.pushButton.setText(_translate("add_dept", "清空")) 67 | self.label2.setText(_translate("add_dept", "部门经理:")) 68 | self.lineEdit.setText(_translate("add_dept", "增加部门信息")) 69 | 70 | -------------------------------------------------------------------------------- /add_profess.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'add_profess.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_add_profess(object): 12 | def setupUi(self, add_profess): 13 | add_profess.setObjectName("add_profess") 14 | add_profess.resize(299, 230) 15 | add_profess.setStyleSheet("background-color:#f4f9f4;") 16 | self.pname = QtWidgets.QLineEdit(add_profess) 17 | self.pname.setGeometry(QtCore.QRect(90, 70, 121, 31)) 18 | self.pname.setObjectName("pname") 19 | self.pushButton = QtWidgets.QPushButton(add_profess) 20 | self.pushButton.setGeometry(QtCore.QRect(110, 140, 75, 23)) 21 | self.pushButton.setStyleSheet("font:75 10pt \"黑体\";\n" 22 | "color:white;\n" 23 | "background-color:rgb(85,170,127);\n" 24 | "border-radius:3px;") 25 | self.pushButton.setObjectName("pushButton") 26 | 27 | self.retranslateUi(add_profess) 28 | self.pushButton.clicked.connect(add_profess.add) 29 | QtCore.QMetaObject.connectSlotsByName(add_profess) 30 | 31 | def retranslateUi(self, add_profess): 32 | _translate = QtCore.QCoreApplication.translate 33 | add_profess.setWindowTitle(_translate("add_profess", "添加职位名称")) 34 | self.pname.setPlaceholderText(_translate("add_profess", "请输入职位名称")) 35 | self.pushButton.setText(_translate("add_profess", "添加")) 36 | 37 | -------------------------------------------------------------------------------- /addstaff.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'addstaff.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_add_staff(object): 12 | def setupUi(self, add_staff): 13 | add_staff.setObjectName("add_staff") 14 | add_staff.resize(915, 569) 15 | add_staff.setStyleSheet("background-color:#f4f9f4;") 16 | self.label_3 = QtWidgets.QLabel(add_staff) 17 | self.label_3.setGeometry(QtCore.QRect(450, 200, 61, 21)) 18 | self.label_3.setStyleSheet("font: 10pt \"幼圆\";") 19 | self.label_3.setObjectName("label_3") 20 | self.qingkong = QtWidgets.QPushButton(add_staff) 21 | self.qingkong.setGeometry(QtCore.QRect(510, 420, 75, 23)) 22 | self.qingkong.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 23 | self.qingkong.setStyleSheet("font:75 10pt \"黑体\";\n" 24 | "color:white;\n" 25 | "background-color:rgb(85,170,127);\n" 26 | "border-radius:3px;") 27 | self.qingkong.setObjectName("qingkong") 28 | self.email = QtWidgets.QLineEdit(add_staff) 29 | self.email.setGeometry(QtCore.QRect(520, 160, 101, 21)) 30 | self.email.setText("") 31 | self.email.setObjectName("email") 32 | self.label_7 = QtWidgets.QLabel(add_staff) 33 | self.label_7.setGeometry(QtCore.QRect(240, 280, 61, 21)) 34 | self.label_7.setStyleSheet("font: 10pt \"幼圆\";") 35 | self.label_7.setObjectName("label_7") 36 | self.label_12 = QtWidgets.QLabel(add_staff) 37 | self.label_12.setGeometry(QtCore.QRect(450, 240, 61, 21)) 38 | self.label_12.setStyleSheet("font: 10pt \"幼圆\";") 39 | self.label_12.setObjectName("label_12") 40 | self.name = QtWidgets.QLineEdit(add_staff) 41 | self.name.setGeometry(QtCore.QRect(310, 120, 101, 21)) 42 | self.name.setObjectName("name") 43 | self.label_8 = QtWidgets.QLabel(add_staff) 44 | self.label_8.setGeometry(QtCore.QRect(240, 200, 61, 21)) 45 | self.label_8.setStyleSheet("font: 10pt \"幼圆\";") 46 | self.label_8.setObjectName("label_8") 47 | self.major = QtWidgets.QLineEdit(add_staff) 48 | self.major.setGeometry(QtCore.QRect(520, 400, 101, 21)) 49 | self.major.setText("") 50 | self.major.setObjectName("major") 51 | self.professional = QtWidgets.QComboBox(add_staff) 52 | self.professional.setGeometry(QtCore.QRect(520, 280, 101, 22)) 53 | self.professional.setEditable(False) 54 | self.professional.setCurrentText("") 55 | self.professional.setObjectName("professional") 56 | self.graduate_time = QtWidgets.QDateEdit(add_staff) 57 | self.graduate_time.setGeometry(QtCore.QRect(520, 360, 101, 21)) 58 | self.graduate_time.setWrapping(False) 59 | self.graduate_time.setDateTime(QtCore.QDateTime(QtCore.QDate(2018, 1, 1), QtCore.QTime(0, 0, 0))) 60 | self.graduate_time.setMinimumDateTime(QtCore.QDateTime(QtCore.QDate(1754, 9, 14), QtCore.QTime(0, 0, 0))) 61 | self.graduate_time.setCalendarPopup(True) 62 | self.graduate_time.setDate(QtCore.QDate(2018, 1, 1)) 63 | self.graduate_time.setObjectName("graduate_time") 64 | self.label = QtWidgets.QLabel(add_staff) 65 | self.label.setGeometry(QtCore.QRect(240, 120, 61, 21)) 66 | self.label.setStyleSheet("font: 10pt \"幼圆\";") 67 | self.label.setObjectName("label") 68 | self.lineEdit = QtWidgets.QLineEdit(add_staff) 69 | self.lineEdit.setGeometry(QtCore.QRect(390, 40, 121, 21)) 70 | self.lineEdit.setStyleSheet("font: 14pt \"华文行楷\";\n" 71 | "color:rgb(80, 126, 59);\n" 72 | "background-color:transparent;\n" 73 | "border:outset;") 74 | self.lineEdit.setObjectName("lineEdit") 75 | self.salary = QtWidgets.QSpinBox(add_staff) 76 | self.salary.setGeometry(QtCore.QRect(520, 320, 101, 21)) 77 | self.salary.setMaximum(100000) 78 | self.salary.setSingleStep(100) 79 | self.salary.setProperty("value", 0) 80 | self.salary.setObjectName("salary") 81 | self.label_major = QtWidgets.QLabel(add_staff) 82 | self.label_major.setGeometry(QtCore.QRect(450, 400, 61, 21)) 83 | self.label_major.setStyleSheet("font: 10pt \"幼圆\";") 84 | self.label_major.setObjectName("label_major") 85 | self.label_4 = QtWidgets.QLabel(add_staff) 86 | self.label_4.setGeometry(QtCore.QRect(240, 160, 61, 21)) 87 | self.label_4.setStyleSheet("font: 10pt \"幼圆\";") 88 | self.label_4.setObjectName("label_4") 89 | self.department = QtWidgets.QComboBox(add_staff) 90 | self.department.setGeometry(QtCore.QRect(310, 320, 101, 22)) 91 | self.department.setEditable(False) 92 | self.department.setCurrentText("") 93 | self.department.setObjectName("department") 94 | self.identity = QtWidgets.QLineEdit(add_staff) 95 | self.identity.setGeometry(QtCore.QRect(310, 160, 101, 21)) 96 | self.identity.setObjectName("identity") 97 | self.add = QtWidgets.QPushButton(add_staff) 98 | self.add.setGeometry(QtCore.QRect(310, 420, 75, 23)) 99 | self.add.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 100 | self.add.setStyleSheet("font:75 10pt \"黑体\";\n" 101 | "color:white;\n" 102 | "background-color:rgb(85,170,127);\n" 103 | "border-radius:3px;") 104 | self.add.setObjectName("add") 105 | self.birth = QtWidgets.QDateEdit(add_staff) 106 | self.birth.setGeometry(QtCore.QRect(520, 200, 101, 21)) 107 | self.birth.setContextMenuPolicy(QtCore.Qt.NoContextMenu) 108 | self.birth.setInputMethodHints(QtCore.Qt.ImhPreferNumbers) 109 | self.birth.setWrapping(False) 110 | self.birth.setFrame(True) 111 | self.birth.setDateTime(QtCore.QDateTime(QtCore.QDate(2018, 1, 1), QtCore.QTime(0, 0, 0))) 112 | self.birth.setCurrentSection(QtWidgets.QDateTimeEdit.YearSection) 113 | self.birth.setCalendarPopup(True) 114 | self.birth.setDate(QtCore.QDate(2018, 1, 1)) 115 | self.birth.setObjectName("birth") 116 | self.address = QtWidgets.QLineEdit(add_staff) 117 | self.address.setGeometry(QtCore.QRect(310, 200, 101, 21)) 118 | self.address.setText("") 119 | self.address.setObjectName("address") 120 | self.label_14 = QtWidgets.QLabel(add_staff) 121 | self.label_14.setGeometry(QtCore.QRect(450, 280, 61, 21)) 122 | self.label_14.setStyleSheet("font: 10pt \"幼圆\";") 123 | self.label_14.setObjectName("label_14") 124 | self.label_school = QtWidgets.QLabel(add_staff) 125 | self.label_school.setGeometry(QtCore.QRect(240, 400, 61, 21)) 126 | self.label_school.setStyleSheet("font: 10pt \"幼圆\";") 127 | self.label_school.setObjectName("label_school") 128 | self.sex = QtWidgets.QComboBox(add_staff) 129 | self.sex.setGeometry(QtCore.QRect(310, 240, 101, 21)) 130 | self.sex.setEditable(False) 131 | self.sex.setObjectName("sex") 132 | self.sex.addItem("") 133 | self.sex.addItem("") 134 | self.sex.addItem("") 135 | self.label_13 = QtWidgets.QLabel(add_staff) 136 | self.label_13.setGeometry(QtCore.QRect(240, 320, 61, 21)) 137 | self.label_13.setStyleSheet("font: 10pt \"幼圆\";") 138 | self.label_13.setObjectName("label_13") 139 | self.label_11 = QtWidgets.QLabel(add_staff) 140 | self.label_11.setGeometry(QtCore.QRect(240, 360, 61, 21)) 141 | self.label_11.setStyleSheet("font: 10pt \"幼圆\";") 142 | self.label_11.setObjectName("label_11") 143 | self.school = QtWidgets.QLineEdit(add_staff) 144 | self.school.setGeometry(QtCore.QRect(310, 400, 101, 21)) 145 | self.school.setObjectName("school") 146 | self.label_17 = QtWidgets.QLabel(add_staff) 147 | self.label_17.setGeometry(QtCore.QRect(450, 320, 61, 21)) 148 | self.label_17.setStyleSheet("font: 10pt \"幼圆\";") 149 | self.label_17.setObjectName("label_17") 150 | self.tel = QtWidgets.QLineEdit(add_staff) 151 | self.tel.setGeometry(QtCore.QRect(520, 120, 101, 21)) 152 | self.tel.setObjectName("tel") 153 | self.label_5 = QtWidgets.QLabel(add_staff) 154 | self.label_5.setGeometry(QtCore.QRect(450, 120, 61, 21)) 155 | self.label_5.setStyleSheet("font: 10pt \"幼圆\";") 156 | self.label_5.setObjectName("label_5") 157 | self.isMarried = QtWidgets.QComboBox(add_staff) 158 | self.isMarried.setGeometry(QtCore.QRect(310, 280, 101, 22)) 159 | self.isMarried.setEditable(False) 160 | self.isMarried.setObjectName("isMarried") 161 | self.isMarried.addItem("") 162 | self.isMarried.addItem("") 163 | self.isMarried.addItem("") 164 | self.label_time = QtWidgets.QLabel(add_staff) 165 | self.label_time.setGeometry(QtCore.QRect(450, 360, 61, 21)) 166 | self.label_time.setStyleSheet("font: 10pt \"幼圆\";") 167 | self.label_time.setObjectName("label_time") 168 | self.label_6 = QtWidgets.QLabel(add_staff) 169 | self.label_6.setGeometry(QtCore.QRect(450, 160, 61, 21)) 170 | self.label_6.setStyleSheet("font: 10pt \"幼圆\";") 171 | self.label_6.setObjectName("label_6") 172 | self.label_2 = QtWidgets.QLabel(add_staff) 173 | self.label_2.setGeometry(QtCore.QRect(240, 240, 61, 21)) 174 | self.label_2.setStyleSheet("font: 10pt \"幼圆\";") 175 | self.label_2.setObjectName("label_2") 176 | self.entry_time = QtWidgets.QDateEdit(add_staff) 177 | self.entry_time.setGeometry(QtCore.QRect(520, 240, 101, 21)) 178 | self.entry_time.setWrapping(False) 179 | self.entry_time.setDateTime(QtCore.QDateTime(QtCore.QDate(2018, 1, 1), QtCore.QTime(0, 0, 0))) 180 | self.entry_time.setMinimumDateTime(QtCore.QDateTime(QtCore.QDate(1754, 9, 14), QtCore.QTime(0, 0, 0))) 181 | self.entry_time.setCalendarPopup(True) 182 | self.entry_time.setDate(QtCore.QDate(2018, 1, 1)) 183 | self.entry_time.setObjectName("entry_time") 184 | self.xl = QtWidgets.QComboBox(add_staff) 185 | self.xl.setGeometry(QtCore.QRect(310, 360, 101, 22)) 186 | self.xl.setEditable(False) 187 | self.xl.setObjectName("xl") 188 | self.xl.addItem("") 189 | self.xl.addItem("") 190 | self.xl.addItem("") 191 | self.xl.addItem("") 192 | self.xl.addItem("") 193 | self.xl.addItem("") 194 | self.xl.addItem("") 195 | self.label_3.setBuddy(self.birth) 196 | self.label_7.setBuddy(self.isMarried) 197 | self.label_12.setBuddy(self.entry_time) 198 | self.label_8.setBuddy(self.address) 199 | self.label.setBuddy(self.name) 200 | self.label_major.setBuddy(self.major) 201 | self.label_4.setBuddy(self.identity) 202 | self.label_14.setBuddy(self.professional) 203 | self.label_school.setBuddy(self.school) 204 | self.label_13.setBuddy(self.department) 205 | self.label_11.setBuddy(self.xl) 206 | self.label_17.setBuddy(self.salary) 207 | self.label_5.setBuddy(self.tel) 208 | self.label_time.setBuddy(self.graduate_time) 209 | self.label_6.setBuddy(self.email) 210 | self.label_2.setBuddy(self.sex) 211 | 212 | self.retranslateUi(add_staff) 213 | self.add.clicked.connect(add_staff.addInfo) 214 | self.qingkong.clicked.connect(add_staff.clearAll) 215 | self.xl.currentTextChanged['QString'].connect(add_staff.showDetail) 216 | QtCore.QMetaObject.connectSlotsByName(add_staff) 217 | 218 | def retranslateUi(self, add_staff): 219 | _translate = QtCore.QCoreApplication.translate 220 | add_staff.setWindowTitle(_translate("add_staff", "Form")) 221 | self.label_3.setText(_translate("add_staff", "出生日期:")) 222 | self.qingkong.setText(_translate("add_staff", "清空")) 223 | self.label_7.setText(_translate("add_staff", "婚否:")) 224 | self.label_12.setText(_translate("add_staff", "入职时间:")) 225 | self.label_8.setText(_translate("add_staff", "住址:")) 226 | self.graduate_time.setDisplayFormat(_translate("add_staff", "yyyy-MM-dd")) 227 | self.label.setText(_translate("add_staff", "员工姓名:")) 228 | self.lineEdit.setText(_translate("add_staff", "添加员工信息")) 229 | self.label_major.setText(_translate("add_staff", "专业:")) 230 | self.label_4.setText(_translate("add_staff", "身份证号:")) 231 | self.add.setText(_translate("add_staff", "添加")) 232 | self.birth.setDisplayFormat(_translate("add_staff", "yyyy-MM-dd")) 233 | self.label_14.setText(_translate("add_staff", "职位:")) 234 | self.label_school.setText(_translate("add_staff", "毕业院校:")) 235 | self.sex.setCurrentText(_translate("add_staff", "-请选择")) 236 | self.sex.setItemText(0, _translate("add_staff", "-请选择")) 237 | self.sex.setItemText(1, _translate("add_staff", "男")) 238 | self.sex.setItemText(2, _translate("add_staff", "女")) 239 | self.label_13.setText(_translate("add_staff", "所在部门:")) 240 | self.label_11.setText(_translate("add_staff", "学历:")) 241 | self.label_17.setText(_translate("add_staff", "薪资:")) 242 | self.label_5.setText(_translate("add_staff", "电话:")) 243 | self.isMarried.setCurrentText(_translate("add_staff", "-请选择")) 244 | self.isMarried.setItemText(0, _translate("add_staff", "-请选择")) 245 | self.isMarried.setItemText(1, _translate("add_staff", "是")) 246 | self.isMarried.setItemText(2, _translate("add_staff", "否")) 247 | self.label_time.setText(_translate("add_staff", "毕业时间:")) 248 | self.label_6.setText(_translate("add_staff", "邮箱:")) 249 | self.label_2.setText(_translate("add_staff", "性别:")) 250 | self.entry_time.setDisplayFormat(_translate("add_staff", "yyyy-MM-dd")) 251 | self.xl.setCurrentText(_translate("add_staff", "-请选择")) 252 | self.xl.setItemText(0, _translate("add_staff", "-请选择")) 253 | self.xl.setItemText(1, _translate("add_staff", "初中及以下")) 254 | self.xl.setItemText(2, _translate("add_staff", "高中")) 255 | self.xl.setItemText(3, _translate("add_staff", "中专")) 256 | self.xl.setItemText(4, _translate("add_staff", "大专")) 257 | self.xl.setItemText(5, _translate("add_staff", "本科")) 258 | self.xl.setItemText(6, _translate("add_staff", "研究生")) 259 | 260 | -------------------------------------------------------------------------------- /admin.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'admin.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_admin(object): 12 | def setupUi(self, admin): 13 | admin.setObjectName("admin") 14 | admin.resize(917, 571) 15 | admin.setStyleSheet("background-color:#f4f9f4;") 16 | self.tableWidget = QtWidgets.QTableWidget(admin) 17 | self.tableWidget.setGeometry(QtCore.QRect(160, 110, 611, 391)) 18 | self.tableWidget.setStyleSheet("border:outset;") 19 | self.tableWidget.setObjectName("tableWidget") 20 | self.tableWidget.setColumnCount(2) 21 | self.tableWidget.setRowCount(1) 22 | item = QtWidgets.QTableWidgetItem() 23 | self.tableWidget.setVerticalHeaderItem(0, item) 24 | item = QtWidgets.QTableWidgetItem() 25 | item.setTextAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignVCenter) 26 | self.tableWidget.setHorizontalHeaderItem(0, item) 27 | item = QtWidgets.QTableWidgetItem() 28 | self.tableWidget.setHorizontalHeaderItem(1, item) 29 | item = QtWidgets.QTableWidgetItem() 30 | item.setTextAlignment(QtCore.Qt.AlignCenter) 31 | self.tableWidget.setItem(0, 0, item) 32 | item = QtWidgets.QTableWidgetItem() 33 | item.setTextAlignment(QtCore.Qt.AlignCenter) 34 | self.tableWidget.setItem(0, 1, item) 35 | self.tableWidget.horizontalHeader().setVisible(False) 36 | self.tableWidget.horizontalHeader().setDefaultSectionSize(305) 37 | self.tableWidget.verticalHeader().setVisible(False) 38 | self.lineEdit = QtWidgets.QLineEdit(admin) 39 | self.lineEdit.setGeometry(QtCore.QRect(390, 40, 121, 21)) 40 | self.lineEdit.setStyleSheet("font: 14pt \"华文行楷\";\n" 41 | "color:rgb(80, 126, 59);\n" 42 | "background-color:transparent;\n" 43 | "border:outset;") 44 | self.lineEdit.setObjectName("lineEdit") 45 | 46 | self.retranslateUi(admin) 47 | QtCore.QMetaObject.connectSlotsByName(admin) 48 | 49 | def retranslateUi(self, admin): 50 | _translate = QtCore.QCoreApplication.translate 51 | admin.setWindowTitle(_translate("admin", "Form")) 52 | item = self.tableWidget.verticalHeaderItem(0) 53 | item.setText(_translate("admin", "1")) 54 | item = self.tableWidget.horizontalHeaderItem(0) 55 | item.setText(_translate("admin", "1")) 56 | item = self.tableWidget.horizontalHeaderItem(1) 57 | item.setText(_translate("admin", "2")) 58 | __sortingEnabled = self.tableWidget.isSortingEnabled() 59 | self.tableWidget.setSortingEnabled(False) 60 | item = self.tableWidget.item(0, 0) 61 | item.setText(_translate("admin", "工号")) 62 | item = self.tableWidget.item(0, 1) 63 | item.setText(_translate("admin", "密码")) 64 | self.tableWidget.setSortingEnabled(__sortingEnabled) 65 | self.lineEdit.setText(_translate("admin", "管理权限控制")) 66 | 67 | -------------------------------------------------------------------------------- /alter_admin.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'alter_admin.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_alter_admin(object): 12 | def setupUi(self, alter_admin): 13 | alter_admin.setObjectName("alter_admin") 14 | alter_admin.resize(299, 230) 15 | alter_admin.setStyleSheet("background-color:#f4f9f4;") 16 | self.pwd = QtWidgets.QLineEdit(alter_admin) 17 | self.pwd.setGeometry(QtCore.QRect(80, 90, 141, 31)) 18 | self.pwd.setFocusPolicy(QtCore.Qt.ClickFocus) 19 | self.pwd.setObjectName("pwd") 20 | self.pushButton = QtWidgets.QPushButton(alter_admin) 21 | self.pushButton.setGeometry(QtCore.QRect(120, 170, 75, 23)) 22 | self.pushButton.setStyleSheet("font:75 10pt \"黑体\";\n" 23 | "color:white;\n" 24 | "background-color:rgb(85,170,127);\n" 25 | "border-radius:3px;") 26 | self.pushButton.setObjectName("pushButton") 27 | self.label = QtWidgets.QLabel(alter_admin) 28 | self.label.setGeometry(QtCore.QRect(80, 50, 31, 21)) 29 | self.label.setStyleSheet("color:rgb(124, 124, 124);") 30 | self.label.setObjectName("label") 31 | self.sno = QtWidgets.QLineEdit(alter_admin) 32 | self.sno.setGeometry(QtCore.QRect(120, 50, 51, 21)) 33 | self.sno.setStyleSheet("border:outset;\n" 34 | "color:rgb(124, 124, 124);") 35 | self.sno.setText("") 36 | self.sno.setObjectName("sno") 37 | 38 | self.retranslateUi(alter_admin) 39 | self.pushButton.clicked.connect(alter_admin.save) 40 | QtCore.QMetaObject.connectSlotsByName(alter_admin) 41 | 42 | def retranslateUi(self, alter_admin): 43 | _translate = QtCore.QCoreApplication.translate 44 | alter_admin.setWindowTitle(_translate("alter_admin", "修改密码")) 45 | self.pwd.setPlaceholderText(_translate("alter_admin", "输入新密码")) 46 | self.pushButton.setText(_translate("alter_admin", "保存")) 47 | self.label.setText(_translate("alter_admin", "工号:")) 48 | 49 | -------------------------------------------------------------------------------- /alter_dept.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'alter_dept.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_alter_dept(object): 12 | def setupUi(self, alter_dept): 13 | alter_dept.setObjectName("alter_dept") 14 | alter_dept.setEnabled(True) 15 | alter_dept.resize(917, 571) 16 | alter_dept.setStyleSheet("background-color:#f4f9f4;") 17 | self.back = QtWidgets.QPushButton(alter_dept) 18 | self.back.setEnabled(True) 19 | self.back.setGeometry(QtCore.QRect(60, 30, 31, 31)) 20 | self.back.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 21 | self.back.setStyleSheet("border-image: url(:/newPrefix/images/back.png);") 22 | self.back.setText("") 23 | self.back.setObjectName("back") 24 | self.label_9 = QtWidgets.QLabel(alter_dept) 25 | self.label_9.setGeometry(QtCore.QRect(350, 160, 81, 31)) 26 | self.label_9.setStyleSheet("font: 12pt \"幼圆\";") 27 | self.label_9.setObjectName("label_9") 28 | self.label_2 = QtWidgets.QLabel(alter_dept) 29 | self.label_2.setGeometry(QtCore.QRect(350, 300, 71, 31)) 30 | self.label_2.setStyleSheet("font: 12pt \"幼圆\";") 31 | self.label_2.setObjectName("label_2") 32 | self.lineEdit = QtWidgets.QLineEdit(alter_dept) 33 | self.lineEdit.setGeometry(QtCore.QRect(390, 40, 121, 21)) 34 | self.lineEdit.setStyleSheet("font: 14pt \"华文行楷\";\n" 35 | "color:rgb(80, 126, 59);\n" 36 | "background-color:transparent;\n" 37 | "border:outset;") 38 | self.lineEdit.setObjectName("lineEdit") 39 | self.name = QtWidgets.QLineEdit(alter_dept) 40 | self.name.setGeometry(QtCore.QRect(440, 220, 121, 31)) 41 | self.name.setStyleSheet("") 42 | self.name.setText("") 43 | self.name.setObjectName("name") 44 | self.label = QtWidgets.QLabel(alter_dept) 45 | self.label.setGeometry(QtCore.QRect(350, 220, 81, 31)) 46 | self.label.setStyleSheet("font: 12pt \"幼圆\";") 47 | self.label.setObjectName("label") 48 | self.no = QtWidgets.QLineEdit(alter_dept) 49 | self.no.setEnabled(False) 50 | self.no.setGeometry(QtCore.QRect(440, 160, 101, 31)) 51 | self.no.setStyleSheet("border:outset;") 52 | self.no.setText("") 53 | self.no.setObjectName("no") 54 | self.pushButton = QtWidgets.QPushButton(alter_dept) 55 | self.pushButton.setGeometry(QtCore.QRect(480, 390, 75, 23)) 56 | self.pushButton.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 57 | self.pushButton.setStyleSheet("font:75 10pt \"黑体\";\n" 58 | "color:white;\n" 59 | "background-color:rgb(85,170,127);\n" 60 | "border-radius:3px;") 61 | self.pushButton.setObjectName("pushButton") 62 | self.pushButton_2 = QtWidgets.QPushButton(alter_dept) 63 | self.pushButton_2.setGeometry(QtCore.QRect(350, 390, 75, 23)) 64 | self.pushButton_2.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 65 | self.pushButton_2.setStyleSheet("font:75 10pt \"黑体\";\n" 66 | "color:white;\n" 67 | "background-color:rgb(85,170,127);\n" 68 | "border-radius:3px;") 69 | self.pushButton_2.setObjectName("pushButton_2") 70 | self.manager = QtWidgets.QComboBox(alter_dept) 71 | self.manager.setGeometry(QtCore.QRect(440, 300, 121, 31)) 72 | self.manager.setObjectName("manager") 73 | self.label_9.setBuddy(self.no) 74 | self.label.setBuddy(self.name) 75 | 76 | self.retranslateUi(alter_dept) 77 | self.back.clicked.connect(alter_dept.goback) 78 | self.pushButton_2.clicked.connect(alter_dept.saveInfo) 79 | self.pushButton.clicked.connect(alter_dept.restore) 80 | QtCore.QMetaObject.connectSlotsByName(alter_dept) 81 | 82 | def retranslateUi(self, alter_dept): 83 | _translate = QtCore.QCoreApplication.translate 84 | alter_dept.setWindowTitle(_translate("alter_dept", "Form")) 85 | self.label_9.setText(_translate("alter_dept", "部门编号:")) 86 | self.label_2.setText(_translate("alter_dept", "部门经理:")) 87 | self.lineEdit.setText(_translate("alter_dept", "修改部门信息")) 88 | self.name.setPlaceholderText(_translate("alter_dept", "不超过10个中文字符")) 89 | self.label.setText(_translate("alter_dept", "部门名称:")) 90 | self.pushButton.setText(_translate("alter_dept", "恢复")) 91 | self.pushButton_2.setText(_translate("alter_dept", "保存")) 92 | 93 | import img_rc 94 | -------------------------------------------------------------------------------- /alter_display_dept.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'alter_display_dept.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_alter_display_dept(object): 12 | def setupUi(self, alter_display_dept): 13 | alter_display_dept.setObjectName("alter_display_dept") 14 | alter_display_dept.resize(917, 571) 15 | alter_display_dept.setStyleSheet("background-color:#f4f9f4;") 16 | self.lineEdit = QtWidgets.QLineEdit(alter_display_dept) 17 | self.lineEdit.setGeometry(QtCore.QRect(390, 40, 121, 21)) 18 | self.lineEdit.setStyleSheet("font: 14pt \"华文行楷\";\n" 19 | "color:rgb(80, 126, 59);\n" 20 | "background-color:transparent;\n" 21 | "border:outset;") 22 | self.lineEdit.setObjectName("lineEdit") 23 | self.tableWidget = QtWidgets.QTableWidget(alter_display_dept) 24 | self.tableWidget.setGeometry(QtCore.QRect(140, 100, 621, 421)) 25 | self.tableWidget.setStyleSheet("border:outset;") 26 | self.tableWidget.setObjectName("tableWidget") 27 | self.tableWidget.setColumnCount(4) 28 | self.tableWidget.setRowCount(1) 29 | item = QtWidgets.QTableWidgetItem() 30 | self.tableWidget.setVerticalHeaderItem(0, item) 31 | item = QtWidgets.QTableWidgetItem() 32 | item.setTextAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignVCenter) 33 | self.tableWidget.setHorizontalHeaderItem(0, item) 34 | item = QtWidgets.QTableWidgetItem() 35 | self.tableWidget.setHorizontalHeaderItem(1, item) 36 | item = QtWidgets.QTableWidgetItem() 37 | self.tableWidget.setHorizontalHeaderItem(2, item) 38 | item = QtWidgets.QTableWidgetItem() 39 | self.tableWidget.setHorizontalHeaderItem(3, item) 40 | item = QtWidgets.QTableWidgetItem() 41 | item.setTextAlignment(QtCore.Qt.AlignCenter) 42 | self.tableWidget.setItem(0, 0, item) 43 | item = QtWidgets.QTableWidgetItem() 44 | item.setTextAlignment(QtCore.Qt.AlignCenter) 45 | self.tableWidget.setItem(0, 1, item) 46 | item = QtWidgets.QTableWidgetItem() 47 | item.setTextAlignment(QtCore.Qt.AlignCenter) 48 | self.tableWidget.setItem(0, 2, item) 49 | item = QtWidgets.QTableWidgetItem() 50 | item.setTextAlignment(QtCore.Qt.AlignCenter) 51 | self.tableWidget.setItem(0, 3, item) 52 | self.tableWidget.horizontalHeader().setVisible(False) 53 | self.tableWidget.horizontalHeader().setDefaultSectionSize(155) 54 | self.tableWidget.verticalHeader().setVisible(False) 55 | 56 | self.retranslateUi(alter_display_dept) 57 | QtCore.QMetaObject.connectSlotsByName(alter_display_dept) 58 | 59 | def retranslateUi(self, alter_display_dept): 60 | _translate = QtCore.QCoreApplication.translate 61 | alter_display_dept.setWindowTitle(_translate("alter_display_dept", "Form")) 62 | self.lineEdit.setText(_translate("alter_display_dept", "修改部门信息")) 63 | item = self.tableWidget.verticalHeaderItem(0) 64 | item.setText(_translate("alter_display_dept", "1")) 65 | item = self.tableWidget.horizontalHeaderItem(0) 66 | item.setText(_translate("alter_display_dept", "1")) 67 | item = self.tableWidget.horizontalHeaderItem(1) 68 | item.setText(_translate("alter_display_dept", "2")) 69 | item = self.tableWidget.horizontalHeaderItem(2) 70 | item.setText(_translate("alter_display_dept", "3")) 71 | item = self.tableWidget.horizontalHeaderItem(3) 72 | item.setText(_translate("alter_display_dept", "4")) 73 | __sortingEnabled = self.tableWidget.isSortingEnabled() 74 | self.tableWidget.setSortingEnabled(False) 75 | item = self.tableWidget.item(0, 0) 76 | item.setText(_translate("alter_display_dept", "部门编号")) 77 | item = self.tableWidget.item(0, 1) 78 | item.setText(_translate("alter_display_dept", "部门名称")) 79 | item = self.tableWidget.item(0, 2) 80 | item.setText(_translate("alter_display_dept", "部门经理")) 81 | item = self.tableWidget.item(0, 3) 82 | item.setText(_translate("alter_display_dept", "修改")) 83 | self.tableWidget.setSortingEnabled(__sortingEnabled) 84 | 85 | -------------------------------------------------------------------------------- /alter_display_staff.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'alter_display_staff.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_alter_display_staff(object): 12 | def setupUi(self, alter_display_staff): 13 | alter_display_staff.setObjectName("alter_display_staff") 14 | alter_display_staff.resize(917, 571) 15 | alter_display_staff.setStyleSheet("background-color:#f4f9f4;") 16 | self.lineEdit = QtWidgets.QLineEdit(alter_display_staff) 17 | self.lineEdit.setGeometry(QtCore.QRect(390, 40, 121, 21)) 18 | self.lineEdit.setStyleSheet("font: 14pt \"华文行楷\";\n" 19 | "color:rgb(80, 126, 59);\n" 20 | "background-color:transparent;\n" 21 | "border:outset;") 22 | self.lineEdit.setObjectName("lineEdit") 23 | self.tableWidget = QtWidgets.QTableWidget(alter_display_staff) 24 | self.tableWidget.setGeometry(QtCore.QRect(140, 100, 621, 351)) 25 | self.tableWidget.setStyleSheet("border:outset;") 26 | self.tableWidget.setObjectName("tableWidget") 27 | self.tableWidget.setColumnCount(4) 28 | self.tableWidget.setRowCount(1) 29 | item = QtWidgets.QTableWidgetItem() 30 | self.tableWidget.setVerticalHeaderItem(0, item) 31 | item = QtWidgets.QTableWidgetItem() 32 | item.setTextAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignVCenter) 33 | self.tableWidget.setHorizontalHeaderItem(0, item) 34 | item = QtWidgets.QTableWidgetItem() 35 | self.tableWidget.setHorizontalHeaderItem(1, item) 36 | item = QtWidgets.QTableWidgetItem() 37 | self.tableWidget.setHorizontalHeaderItem(2, item) 38 | item = QtWidgets.QTableWidgetItem() 39 | self.tableWidget.setHorizontalHeaderItem(3, item) 40 | item = QtWidgets.QTableWidgetItem() 41 | item.setTextAlignment(QtCore.Qt.AlignCenter) 42 | self.tableWidget.setItem(0, 0, item) 43 | item = QtWidgets.QTableWidgetItem() 44 | item.setTextAlignment(QtCore.Qt.AlignCenter) 45 | self.tableWidget.setItem(0, 1, item) 46 | item = QtWidgets.QTableWidgetItem() 47 | item.setTextAlignment(QtCore.Qt.AlignCenter) 48 | self.tableWidget.setItem(0, 2, item) 49 | item = QtWidgets.QTableWidgetItem() 50 | item.setTextAlignment(QtCore.Qt.AlignCenter) 51 | self.tableWidget.setItem(0, 3, item) 52 | self.tableWidget.horizontalHeader().setVisible(False) 53 | self.tableWidget.horizontalHeader().setDefaultSectionSize(155) 54 | self.tableWidget.verticalHeader().setVisible(False) 55 | 56 | self.retranslateUi(alter_display_staff) 57 | QtCore.QMetaObject.connectSlotsByName(alter_display_staff) 58 | 59 | def retranslateUi(self, alter_display_staff): 60 | _translate = QtCore.QCoreApplication.translate 61 | alter_display_staff.setWindowTitle(_translate("alter_display_staff", "Form")) 62 | self.lineEdit.setText(_translate("alter_display_staff", "修改员工信息")) 63 | item = self.tableWidget.verticalHeaderItem(0) 64 | item.setText(_translate("alter_display_staff", "1")) 65 | item = self.tableWidget.horizontalHeaderItem(0) 66 | item.setText(_translate("alter_display_staff", "1")) 67 | item = self.tableWidget.horizontalHeaderItem(1) 68 | item.setText(_translate("alter_display_staff", "2")) 69 | item = self.tableWidget.horizontalHeaderItem(2) 70 | item.setText(_translate("alter_display_staff", "3")) 71 | item = self.tableWidget.horizontalHeaderItem(3) 72 | item.setText(_translate("alter_display_staff", "4")) 73 | __sortingEnabled = self.tableWidget.isSortingEnabled() 74 | self.tableWidget.setSortingEnabled(False) 75 | item = self.tableWidget.item(0, 0) 76 | item.setText(_translate("alter_display_staff", "工号")) 77 | item = self.tableWidget.item(0, 1) 78 | item.setText(_translate("alter_display_staff", "姓名")) 79 | item = self.tableWidget.item(0, 2) 80 | item.setText(_translate("alter_display_staff", "部门")) 81 | item = self.tableWidget.item(0, 3) 82 | item.setText(_translate("alter_display_staff", "修改")) 83 | self.tableWidget.setSortingEnabled(__sortingEnabled) 84 | 85 | -------------------------------------------------------------------------------- /alter_profess.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'alter_profess.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_alter_profess(object): 12 | def setupUi(self, alter_profess): 13 | alter_profess.setObjectName("alter_profess") 14 | alter_profess.resize(299, 230) 15 | alter_profess.setStyleSheet("background-color:#f4f9f4;") 16 | self.pname = QtWidgets.QLineEdit(alter_profess) 17 | self.pname.setGeometry(QtCore.QRect(90, 70, 121, 31)) 18 | self.pname.setObjectName("pname") 19 | self.pushButton = QtWidgets.QPushButton(alter_profess) 20 | self.pushButton.setGeometry(QtCore.QRect(110, 140, 75, 23)) 21 | self.pushButton.setStyleSheet("font:75 10pt \"黑体\";\n" 22 | "color:white;\n" 23 | "background-color:rgb(85,170,127);\n" 24 | "border-radius:3px;") 25 | self.pushButton.setObjectName("pushButton") 26 | self.no = QtWidgets.QLineEdit(alter_profess) 27 | self.no.setGeometry(QtCore.QRect(150, 30, 61, 20)) 28 | self.no.setStyleSheet("background:transparent;\n" 29 | "border:outset;\n" 30 | "color: rgb(138, 138, 138);") 31 | self.no.setObjectName("no") 32 | self.label = QtWidgets.QLabel(alter_profess) 33 | self.label.setGeometry(QtCore.QRect(90, 30, 54, 21)) 34 | self.label.setStyleSheet("\n" 35 | "color: rgb(138, 138, 138);") 36 | self.label.setObjectName("label") 37 | 38 | self.retranslateUi(alter_profess) 39 | self.pushButton.clicked.connect(alter_profess.save) 40 | QtCore.QMetaObject.connectSlotsByName(alter_profess) 41 | 42 | def retranslateUi(self, alter_profess): 43 | _translate = QtCore.QCoreApplication.translate 44 | alter_profess.setWindowTitle(_translate("alter_profess", "修改职位名称")) 45 | self.pname.setPlaceholderText(_translate("alter_profess", "请输入新的职位名称")) 46 | self.pushButton.setText(_translate("alter_profess", "保存")) 47 | self.no.setText(_translate("alter_profess", "1")) 48 | self.label.setText(_translate("alter_profess", "职位编号:")) 49 | 50 | -------------------------------------------------------------------------------- /alter_staff.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'alter_staff.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_alter_staff(object): 12 | def setupUi(self, alter_staff): 13 | alter_staff.setObjectName("alter_staff") 14 | alter_staff.setEnabled(True) 15 | alter_staff.resize(917, 571) 16 | alter_staff.setStyleSheet("background-color:#f4f9f4;") 17 | self.lineEdit = QtWidgets.QLineEdit(alter_staff) 18 | self.lineEdit.setGeometry(QtCore.QRect(390, 40, 121, 21)) 19 | self.lineEdit.setStyleSheet("font: 14pt \"华文行楷\";\n" 20 | "color:rgb(80, 126, 59);\n" 21 | "background-color:transparent;\n" 22 | "border:outset;") 23 | self.lineEdit.setObjectName("lineEdit") 24 | self.label = QtWidgets.QLabel(alter_staff) 25 | self.label.setGeometry(QtCore.QRect(440, 100, 61, 21)) 26 | self.label.setStyleSheet("font: 10pt \"幼圆\";") 27 | self.label.setObjectName("label") 28 | self.name = QtWidgets.QLineEdit(alter_staff) 29 | self.name.setGeometry(QtCore.QRect(510, 100, 101, 21)) 30 | self.name.setObjectName("name") 31 | self.label_2 = QtWidgets.QLabel(alter_staff) 32 | self.label_2.setGeometry(QtCore.QRect(230, 220, 61, 21)) 33 | self.label_2.setStyleSheet("font: 10pt \"幼圆\";") 34 | self.label_2.setObjectName("label_2") 35 | self.label_3 = QtWidgets.QLabel(alter_staff) 36 | self.label_3.setGeometry(QtCore.QRect(440, 220, 61, 21)) 37 | self.label_3.setStyleSheet("font: 10pt \"幼圆\";") 38 | self.label_3.setObjectName("label_3") 39 | self.identity = QtWidgets.QLineEdit(alter_staff) 40 | self.identity.setGeometry(QtCore.QRect(300, 140, 101, 21)) 41 | self.identity.setObjectName("identity") 42 | self.label_4 = QtWidgets.QLabel(alter_staff) 43 | self.label_4.setGeometry(QtCore.QRect(230, 140, 61, 21)) 44 | self.label_4.setStyleSheet("font: 10pt \"幼圆\";") 45 | self.label_4.setObjectName("label_4") 46 | self.tel = QtWidgets.QLineEdit(alter_staff) 47 | self.tel.setGeometry(QtCore.QRect(510, 140, 101, 21)) 48 | self.tel.setObjectName("tel") 49 | self.label_5 = QtWidgets.QLabel(alter_staff) 50 | self.label_5.setGeometry(QtCore.QRect(440, 140, 61, 21)) 51 | self.label_5.setStyleSheet("font: 10pt \"幼圆\";") 52 | self.label_5.setObjectName("label_5") 53 | self.email = QtWidgets.QLineEdit(alter_staff) 54 | self.email.setGeometry(QtCore.QRect(510, 180, 101, 21)) 55 | self.email.setText("") 56 | self.email.setObjectName("email") 57 | self.label_6 = QtWidgets.QLabel(alter_staff) 58 | self.label_6.setGeometry(QtCore.QRect(440, 180, 61, 21)) 59 | self.label_6.setStyleSheet("font: 10pt \"幼圆\";") 60 | self.label_6.setObjectName("label_6") 61 | self.label_7 = QtWidgets.QLabel(alter_staff) 62 | self.label_7.setGeometry(QtCore.QRect(230, 260, 61, 21)) 63 | self.label_7.setStyleSheet("font: 10pt \"幼圆\";") 64 | self.label_7.setObjectName("label_7") 65 | self.address = QtWidgets.QLineEdit(alter_staff) 66 | self.address.setGeometry(QtCore.QRect(300, 180, 101, 21)) 67 | self.address.setText("") 68 | self.address.setObjectName("address") 69 | self.label_8 = QtWidgets.QLabel(alter_staff) 70 | self.label_8.setGeometry(QtCore.QRect(230, 180, 61, 21)) 71 | self.label_8.setStyleSheet("font: 10pt \"幼圆\";") 72 | self.label_8.setObjectName("label_8") 73 | self.huifu = QtWidgets.QPushButton(alter_staff) 74 | self.huifu.setGeometry(QtCore.QRect(500, 470, 75, 23)) 75 | self.huifu.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 76 | self.huifu.setStyleSheet("font:75 10pt \"黑体\";\n" 77 | "color:white;\n" 78 | "background-color:rgb(85,170,127);\n" 79 | "border-radius:3px;") 80 | self.huifu.setObjectName("huifu") 81 | self.save = QtWidgets.QPushButton(alter_staff) 82 | self.save.setGeometry(QtCore.QRect(300, 470, 75, 23)) 83 | self.save.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 84 | self.save.setStyleSheet("font:75 10pt \"黑体\";\n" 85 | "color:white;\n" 86 | "background-color:rgb(85,170,127);\n" 87 | "border-radius:3px;") 88 | self.save.setObjectName("save") 89 | self.birth = QtWidgets.QDateEdit(alter_staff) 90 | self.birth.setGeometry(QtCore.QRect(510, 220, 101, 21)) 91 | self.birth.setContextMenuPolicy(QtCore.Qt.NoContextMenu) 92 | self.birth.setInputMethodHints(QtCore.Qt.ImhPreferNumbers) 93 | self.birth.setWrapping(False) 94 | self.birth.setFrame(True) 95 | self.birth.setDateTime(QtCore.QDateTime(QtCore.QDate(2018, 1, 1), QtCore.QTime(0, 0, 0))) 96 | self.birth.setCurrentSection(QtWidgets.QDateTimeEdit.YearSection) 97 | self.birth.setCalendarPopup(True) 98 | self.birth.setDate(QtCore.QDate(2018, 1, 1)) 99 | self.birth.setObjectName("birth") 100 | self.label_9 = QtWidgets.QLabel(alter_staff) 101 | self.label_9.setGeometry(QtCore.QRect(230, 100, 61, 21)) 102 | self.label_9.setStyleSheet("font: 10pt \"幼圆\";") 103 | self.label_9.setObjectName("label_9") 104 | self.no = QtWidgets.QLineEdit(alter_staff) 105 | self.no.setEnabled(False) 106 | self.no.setGeometry(QtCore.QRect(300, 100, 101, 21)) 107 | self.no.setStyleSheet("border:outset;\n" 108 | "background:transparent;\n" 109 | "") 110 | self.no.setText("") 111 | self.no.setObjectName("no") 112 | self.pushButton_3 = QtWidgets.QPushButton(alter_staff) 113 | self.pushButton_3.setGeometry(QtCore.QRect(40, 30, 31, 31)) 114 | self.pushButton_3.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 115 | self.pushButton_3.setStyleSheet("border-image: url(:/newPrefix/images/back.png);") 116 | self.pushButton_3.setText("") 117 | self.pushButton_3.setObjectName("pushButton_3") 118 | self.sex = QtWidgets.QComboBox(alter_staff) 119 | self.sex.setGeometry(QtCore.QRect(300, 220, 101, 21)) 120 | self.sex.setEditable(False) 121 | self.sex.setObjectName("sex") 122 | self.sex.addItem("") 123 | self.sex.addItem("") 124 | self.isMarried = QtWidgets.QComboBox(alter_staff) 125 | self.isMarried.setGeometry(QtCore.QRect(300, 260, 101, 22)) 126 | self.isMarried.setEditable(False) 127 | self.isMarried.setObjectName("isMarried") 128 | self.isMarried.addItem("") 129 | self.isMarried.addItem("") 130 | self.label_school = QtWidgets.QLabel(alter_staff) 131 | self.label_school.setGeometry(QtCore.QRect(440, 380, 61, 21)) 132 | self.label_school.setStyleSheet("font: 10pt \"幼圆\";") 133 | self.label_school.setObjectName("label_school") 134 | self.label_11 = QtWidgets.QLabel(alter_staff) 135 | self.label_11.setGeometry(QtCore.QRect(440, 340, 61, 21)) 136 | self.label_11.setStyleSheet("font: 10pt \"幼圆\";") 137 | self.label_11.setObjectName("label_11") 138 | self.school = QtWidgets.QLineEdit(alter_staff) 139 | self.school.setGeometry(QtCore.QRect(510, 380, 101, 21)) 140 | self.school.setObjectName("school") 141 | self.xl = QtWidgets.QComboBox(alter_staff) 142 | self.xl.setGeometry(QtCore.QRect(510, 340, 101, 22)) 143 | self.xl.setEditable(False) 144 | self.xl.setObjectName("xl") 145 | self.xl.addItem("") 146 | self.xl.addItem("") 147 | self.xl.addItem("") 148 | self.xl.addItem("") 149 | self.xl.addItem("") 150 | self.xl.addItem("") 151 | self.xl.addItem("") 152 | self.entry_time = QtWidgets.QDateEdit(alter_staff) 153 | self.entry_time.setGeometry(QtCore.QRect(510, 260, 101, 21)) 154 | self.entry_time.setWrapping(False) 155 | self.entry_time.setDateTime(QtCore.QDateTime(QtCore.QDate(2018, 1, 1), QtCore.QTime(0, 0, 0))) 156 | self.entry_time.setMinimumDateTime(QtCore.QDateTime(QtCore.QDate(1754, 9, 14), QtCore.QTime(0, 0, 0))) 157 | self.entry_time.setCalendarPopup(True) 158 | self.entry_time.setDate(QtCore.QDate(2018, 1, 1)) 159 | self.entry_time.setObjectName("entry_time") 160 | self.label_12 = QtWidgets.QLabel(alter_staff) 161 | self.label_12.setGeometry(QtCore.QRect(440, 260, 61, 21)) 162 | self.label_12.setStyleSheet("font: 10pt \"幼圆\";") 163 | self.label_12.setObjectName("label_12") 164 | self.label_13 = QtWidgets.QLabel(alter_staff) 165 | self.label_13.setGeometry(QtCore.QRect(230, 300, 61, 21)) 166 | self.label_13.setStyleSheet("font: 10pt \"幼圆\";") 167 | self.label_13.setObjectName("label_13") 168 | self.label_14 = QtWidgets.QLabel(alter_staff) 169 | self.label_14.setGeometry(QtCore.QRect(440, 300, 61, 21)) 170 | self.label_14.setStyleSheet("font: 10pt \"幼圆\";") 171 | self.label_14.setObjectName("label_14") 172 | self.major = QtWidgets.QLineEdit(alter_staff) 173 | self.major.setGeometry(QtCore.QRect(300, 420, 101, 21)) 174 | self.major.setText("") 175 | self.major.setObjectName("major") 176 | self.label_major = QtWidgets.QLabel(alter_staff) 177 | self.label_major.setGeometry(QtCore.QRect(230, 420, 61, 21)) 178 | self.label_major.setStyleSheet("font: 10pt \"幼圆\";") 179 | self.label_major.setObjectName("label_major") 180 | self.label_time = QtWidgets.QLabel(alter_staff) 181 | self.label_time.setGeometry(QtCore.QRect(230, 380, 61, 21)) 182 | self.label_time.setStyleSheet("font: 10pt \"幼圆\";") 183 | self.label_time.setObjectName("label_time") 184 | self.professional = QtWidgets.QComboBox(alter_staff) 185 | self.professional.setGeometry(QtCore.QRect(510, 300, 101, 22)) 186 | self.professional.setEditable(False) 187 | self.professional.setCurrentText("") 188 | self.professional.setObjectName("professional") 189 | self.department = QtWidgets.QComboBox(alter_staff) 190 | self.department.setGeometry(QtCore.QRect(300, 300, 101, 22)) 191 | self.department.setEditable(False) 192 | self.department.setCurrentText("") 193 | self.department.setObjectName("department") 194 | self.label_17 = QtWidgets.QLabel(alter_staff) 195 | self.label_17.setGeometry(QtCore.QRect(230, 340, 61, 21)) 196 | self.label_17.setStyleSheet("font: 10pt \"幼圆\";") 197 | self.label_17.setObjectName("label_17") 198 | self.salary = QtWidgets.QSpinBox(alter_staff) 199 | self.salary.setGeometry(QtCore.QRect(300, 340, 101, 21)) 200 | self.salary.setMaximum(100000) 201 | self.salary.setProperty("value", 0) 202 | self.salary.setObjectName("salary") 203 | self.graduate_time = QtWidgets.QDateEdit(alter_staff) 204 | self.graduate_time.setGeometry(QtCore.QRect(300, 380, 101, 21)) 205 | self.graduate_time.setWrapping(False) 206 | self.graduate_time.setDateTime(QtCore.QDateTime(QtCore.QDate(2018, 1, 1), QtCore.QTime(0, 0, 0))) 207 | self.graduate_time.setMinimumDateTime(QtCore.QDateTime(QtCore.QDate(1754, 9, 14), QtCore.QTime(0, 0, 0))) 208 | self.graduate_time.setCalendarPopup(True) 209 | self.graduate_time.setDate(QtCore.QDate(2018, 1, 1)) 210 | self.graduate_time.setObjectName("graduate_time") 211 | self.label.setBuddy(self.name) 212 | self.label_2.setBuddy(self.sex) 213 | self.label_3.setBuddy(self.birth) 214 | self.label_4.setBuddy(self.identity) 215 | self.label_5.setBuddy(self.tel) 216 | self.label_6.setBuddy(self.email) 217 | self.label_7.setBuddy(self.isMarried) 218 | self.label_8.setBuddy(self.address) 219 | self.label_9.setBuddy(self.no) 220 | self.label_school.setBuddy(self.school) 221 | self.label_11.setBuddy(self.xl) 222 | self.label_12.setBuddy(self.entry_time) 223 | self.label_13.setBuddy(self.department) 224 | self.label_14.setBuddy(self.professional) 225 | self.label_major.setBuddy(self.major) 226 | self.label_time.setBuddy(self.graduate_time) 227 | self.label_17.setBuddy(self.salary) 228 | 229 | self.retranslateUi(alter_staff) 230 | self.save.clicked.connect(alter_staff.saveInfo) 231 | self.huifu.clicked.connect(alter_staff.restore) 232 | self.pushButton_3.clicked.connect(alter_staff.goback) 233 | self.xl.currentTextChanged['QString'].connect(alter_staff.showDetail) 234 | QtCore.QMetaObject.connectSlotsByName(alter_staff) 235 | 236 | def retranslateUi(self, alter_staff): 237 | _translate = QtCore.QCoreApplication.translate 238 | alter_staff.setWindowTitle(_translate("alter_staff", "Form")) 239 | self.lineEdit.setText(_translate("alter_staff", "修改员工信息")) 240 | self.label.setText(_translate("alter_staff", "员工姓名:")) 241 | self.label_2.setText(_translate("alter_staff", "性别:")) 242 | self.label_3.setText(_translate("alter_staff", "出生日期:")) 243 | self.label_4.setText(_translate("alter_staff", "身份证号:")) 244 | self.label_5.setText(_translate("alter_staff", "电话:")) 245 | self.label_6.setText(_translate("alter_staff", "邮箱:")) 246 | self.label_7.setText(_translate("alter_staff", "婚否:")) 247 | self.label_8.setText(_translate("alter_staff", "住址:")) 248 | self.huifu.setText(_translate("alter_staff", "恢复")) 249 | self.save.setText(_translate("alter_staff", "保存")) 250 | self.birth.setDisplayFormat(_translate("alter_staff", "yyyy-MM-dd")) 251 | self.label_9.setText(_translate("alter_staff", "员工编号:")) 252 | self.sex.setCurrentText(_translate("alter_staff", "男")) 253 | self.sex.setItemText(0, _translate("alter_staff", "男")) 254 | self.sex.setItemText(1, _translate("alter_staff", "女")) 255 | self.isMarried.setCurrentText(_translate("alter_staff", "是")) 256 | self.isMarried.setItemText(0, _translate("alter_staff", "是")) 257 | self.isMarried.setItemText(1, _translate("alter_staff", "否")) 258 | self.label_school.setText(_translate("alter_staff", "毕业院校:")) 259 | self.label_11.setText(_translate("alter_staff", "学历:")) 260 | self.xl.setCurrentText(_translate("alter_staff", "小学")) 261 | self.xl.setItemText(0, _translate("alter_staff", "小学")) 262 | self.xl.setItemText(1, _translate("alter_staff", "初中")) 263 | self.xl.setItemText(2, _translate("alter_staff", "高中")) 264 | self.xl.setItemText(3, _translate("alter_staff", "中专")) 265 | self.xl.setItemText(4, _translate("alter_staff", "大专")) 266 | self.xl.setItemText(5, _translate("alter_staff", "本科")) 267 | self.xl.setItemText(6, _translate("alter_staff", "研究生")) 268 | self.entry_time.setDisplayFormat(_translate("alter_staff", "yyyy-MM-dd")) 269 | self.label_12.setText(_translate("alter_staff", "入职时间:")) 270 | self.label_13.setText(_translate("alter_staff", "所在部门:")) 271 | self.label_14.setText(_translate("alter_staff", "职位:")) 272 | self.label_major.setText(_translate("alter_staff", "专业:")) 273 | self.label_time.setText(_translate("alter_staff", "毕业时间:")) 274 | self.label_17.setText(_translate("alter_staff", "薪资:")) 275 | self.graduate_time.setDisplayFormat(_translate("alter_staff", "yyyy-MM-dd")) 276 | 277 | import img_rc 278 | -------------------------------------------------------------------------------- /checkChange.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'checkChange.ui' # # Created by: PyQt5 UI code generator 5.9 # # WARNING! All changes made in this file will be lost! import sys import pymysql import datetime from PyQt5 import QtCore, QtGui, QtWidgets class checkChange(QtWidgets.QTableWidget): def __init__(self): super().__init__() self.setupUi(self) def setupUi(self, check): check.setObjectName("check") check.resize(983, 584) self.horizontalLayoutWidget = QtWidgets.QWidget(check) self.horizontalLayoutWidget.setGeometry(QtCore.QRect(20, 5,860, 540)) self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget") self.horizontalLayout = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget) self.horizontalLayout.setContentsMargins(0, 0, 0, 0) self.horizontalLayout.setObjectName("horizontalLayout") self.checkLayout = QtWidgets.QVBoxLayout() self.checkLayout.setObjectName("checkLayout") self.gridLayout_3 = QtWidgets.QGridLayout() self.gridLayout_3.setObjectName("gridLayout_3") self.searchButton = QtWidgets.QPushButton(self.horizontalLayoutWidget) #self.searchButton.setStyleSheet("font: 12pt \"Adobe Arabic\";") self.searchButton.setObjectName("searchButton") self.gridLayout_3.addWidget(self.searchButton, 0, 2, 1, 1) self.searchText = QtWidgets.QLineEdit(self.horizontalLayoutWidget) #self.searchText.setStyleSheet("font: 16pt \"Adobe Arabic\";") self.searchText.setText("") self.searchText.setObjectName("searchText") self.gridLayout_3.addWidget(self.searchText, 0, 0, 1, 1) self.comboBox = QtWidgets.QComboBox(self.horizontalLayoutWidget) #self.comboBox.setStyleSheet("font: 12pt \"Adobe Arabic\";") self.comboBox.setObjectName("comboBox") self.comboBox.addItem("") self.comboBox.addItem("") self.comboBox.addItem("") self.gridLayout_3.addWidget(self.comboBox, 0, 3, 1, 1) self.label_15 = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label_15.setStyleSheet("font: 30pt \"Adobe Arabic\";") self.label_15.setText("") self.label_15.setObjectName("label_15") self.gridLayout_3.addWidget(self.label_15, 0, 1, 1, 1) self.checkLayout.addLayout(self.gridLayout_3) self.staffTable = QtWidgets.QTableWidget(self.horizontalLayoutWidget) self.staffTable.setEditTriggers(QtWidgets.QTableWidget.NoEditTriggers) self.staffTable.setSelectionBehavior(QtWidgets.QTableWidget.SelectRows) self.staffTable.setEnabled(True) self.staffTable.setTabletTracking(False) self.staffTable.setAcceptDrops(False) self.staffTable.setLayoutDirection(QtCore.Qt.LeftToRight) self.staffTable.setStyleSheet("") self.staffTable.setAlternatingRowColors(True) self.staffTable.setShowGrid(True) self.staffTable.setWordWrap(False) self.staffTable.setCornerButtonEnabled(True) self.staffTable.setObjectName("staffTable") self.staffTable.setColumnCount(5) self.staffTable.setRowCount(4) item = QtWidgets.QTableWidgetItem() self.staffTable.setVerticalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() self.staffTable.setVerticalHeaderItem(1, item) item = QtWidgets.QTableWidgetItem() self.staffTable.setVerticalHeaderItem(2, item) item = QtWidgets.QTableWidgetItem() self.staffTable.setVerticalHeaderItem(3, item) item = QtWidgets.QTableWidgetItem() font = QtGui.QFont() font.setPointSize(10) item.setFont(font) self.staffTable.setHorizontalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() self.staffTable.setHorizontalHeaderItem(1, item) item = QtWidgets.QTableWidgetItem() self.staffTable.setHorizontalHeaderItem(2, item) item = QtWidgets.QTableWidgetItem() self.staffTable.setHorizontalHeaderItem(3, item) item = QtWidgets.QTableWidgetItem() self.staffTable.setHorizontalHeaderItem(4, item) self.staffTable.horizontalHeader().setVisible(True) self.staffTable.horizontalHeader().setCascadingSectionResizes(False) self.staffTable.horizontalHeader().setHighlightSections(True) self.staffTable.horizontalHeader().setSortIndicatorShown(False) self.staffTable.horizontalHeader().setStretchLastSection(True) self.staffTable.verticalHeader().setVisible(False) self.staffTable.verticalHeader().setCascadingSectionResizes(False) self.staffTable.verticalHeader().setSortIndicatorShown(False) self.staffTable.verticalHeader().setStretchLastSection(False) self.checkLayout.addWidget(self.staffTable) self.horizontalLayout.addLayout(self.checkLayout) #self.label_4 = QtWidgets.QLabel(self.horizontalLayoutWidget) #self.label_4.setObjectName("label_4") #self.horizontalLayout.addWidget(self.label_4) self.verticalLayout = QtWidgets.QVBoxLayout() self.verticalLayout.setObjectName("verticalLayout") self.formLayout = QtWidgets.QFormLayout() self.formLayout.setObjectName("formLayout") self.label = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label.setStyleSheet("font: 14pt \"Adobe Arabic\";\n" "color: rgb(255, 0, 0);") self.label.setObjectName("label") self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label) self.nowdate = QtWidgets.QLabel(self.horizontalLayoutWidget) self.nowdate.setStyleSheet("font: 20pt \"Adobe Arabic\";\n" "color: rgb(255, 0, 0);") self.nowdate.setObjectName("nowdate") self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.nowdate) self.label_3 = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label_3.setStyleSheet("font: 12pt \"Adobe Arabic\";") self.label_3.setObjectName("label_3") self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_3) self.label_sname = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label_sname.setStyleSheet("font: 12pt \"Adobe Arabic\";") self.label_sname.setObjectName("label_sname") self.formLayout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.label_sname) self.label_5 = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label_5.setStyleSheet("font: 12pt \"Adobe Arabic\";") self.label_5.setObjectName("label_5") self.formLayout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.label_5) self.label_sno = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label_sno.setStyleSheet("font: 18pt \"Adobe Arabic\";") self.label_sno.setObjectName("label_sno") self.formLayout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.label_sno) self.label_7 = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label_7.setStyleSheet("font: 12pt \"Adobe Arabic\";") self.label_7.setObjectName("label_7") self.formLayout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.label_7) self.label_ssex = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label_ssex.setStyleSheet("font: 12pt \"Adobe Arabic\";") self.label_ssex.setObjectName("label_ssex") self.formLayout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.label_ssex) self.label_9 = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label_9.setStyleSheet("font: 12pt \"Adobe Arabic\";") self.label_9.setObjectName("label_9") self.formLayout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.label_9) self.label_dname = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label_dname.setStyleSheet("font: 12pt \"Adobe Arabic\";") self.label_dname.setObjectName("label_dname") self.formLayout.setWidget(4, QtWidgets.QFormLayout.FieldRole, self.label_dname) self.label_11 = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label_11.setStyleSheet("font: 12pt \"Adobe Arabic\";") self.label_11.setObjectName("label_11") self.formLayout.setWidget(5, QtWidgets.QFormLayout.LabelRole, self.label_11) self.label_pname = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label_pname.setStyleSheet("font: 12pt \"Adobe Arabic\";") self.label_pname.setObjectName("label_pname") self.formLayout.setWidget(5, QtWidgets.QFormLayout.FieldRole, self.label_pname) self.label_14 = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label_14.setStyleSheet("font: 12pt \"Adobe Arabic\";") self.label_14.setObjectName("label_14") self.formLayout.setWidget(6, QtWidgets.QFormLayout.LabelRole, self.label_14) self.spinBox_tdays = QtWidgets.QSpinBox(self.horizontalLayoutWidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.spinBox_tdays.sizePolicy().hasHeightForWidth()) self.spinBox_tdays.setSizePolicy(sizePolicy) self.spinBox_tdays.setStyleSheet("font: 16pt \"Adobe Arabic\";") self.spinBox_tdays.setMaximum(31) self.spinBox_tdays.setObjectName("spinBox_tdays") self.formLayout.setWidget(6, QtWidgets.QFormLayout.FieldRole, self.spinBox_tdays) self.label_18 = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label_18.setStyleSheet("font: 12pt \"Adobe Arabic\";") self.label_18.setObjectName("label_18") self.formLayout.setWidget(7, QtWidgets.QFormLayout.LabelRole, self.label_18) self.spinBox_ldays = QtWidgets.QSpinBox(self.horizontalLayoutWidget) self.spinBox_ldays.setStyleSheet("font: 16pt \"Adobe Arabic\";") self.spinBox_ldays.setMaximum(31) self.spinBox_ldays.setObjectName("spinBox_ldays") self.formLayout.setWidget(7, QtWidgets.QFormLayout.FieldRole, self.spinBox_ldays) self.label_19 = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label_19.setStyleSheet("font: 12pt \"Adobe Arabic\";") self.label_19.setObjectName("label_19") self.formLayout.setWidget(8, QtWidgets.QFormLayout.LabelRole, self.label_19) self.spinBox_adays = QtWidgets.QSpinBox(self.horizontalLayoutWidget) self.spinBox_adays.setStyleSheet("font: 16pt \"Adobe Arabic\";") self.spinBox_adays.setMaximum(31) self.spinBox_adays.setObjectName("spinBox_adays") self.formLayout.setWidget(8, QtWidgets.QFormLayout.FieldRole, self.spinBox_adays) self.label_20 = QtWidgets.QLabel(self.horizontalLayoutWidget) self.label_20.setStyleSheet("font: 12pt \"Adobe Arabic\";") self.label_20.setObjectName("label_19") self.formLayout.setWidget(9, QtWidgets.QFormLayout.LabelRole, self.label_20) self.spinBox_odays = QtWidgets.QSpinBox(self.horizontalLayoutWidget) self.spinBox_odays.setStyleSheet("font: 16pt \"Adobe Arabic\";") self.spinBox_odays.setMaximum(31) self.spinBox_odays.setObjectName("spinBox_adays") self.formLayout.setWidget(9, QtWidgets.QFormLayout.FieldRole, self.spinBox_odays) self.verticalLayout.addLayout(self.formLayout) self.submitButton = QtWidgets.QPushButton(self.horizontalLayoutWidget) self.submitButton.setStyleSheet("font: 16pt \"Adobe Arabic\";") self.submitButton.setObjectName("submitButton") self.submitButton.setStyleSheet("background-color:rgb(255, 57, 60);\n" "color: rgb(255, 255, 255);\n" "font: 75 14pt \"Adobe Arabic\";\n" "") self.verticalLayout.addWidget(self.submitButton) self.horizontalLayout.addLayout(self.verticalLayout) self.horizontalLayoutWidget.raise_() self.submitButton.raise_() self.retranslateUi(check) QtCore.QMetaObject.connectSlotsByName(check) self.readMysql() self.staffTable.clicked.connect(self.setInfo) self.searchButton.clicked.connect(self.searchRecord) self.searchText.editingFinished.connect(self.searchRecord) self.submitButton.clicked.connect(self.submitInfo) def retranslateUi(self, check): _translate = QtCore.QCoreApplication.translate check.setWindowTitle(_translate("check", "Form")) self.searchButton.setText(_translate("check", "查询")) self.comboBox.setItemText(0, _translate("check", "按姓名查找")) self.comboBox.setItemText(1, _translate("check", "按工号查找")) self.comboBox.setItemText(2, _translate("check", "按部门查找")) self.staffTable.setSortingEnabled(False) item = self.staffTable.verticalHeaderItem(0) item.setText(_translate("check", "New Row")) item = self.staffTable.verticalHeaderItem(1) item.setText(_translate("check", "New Row")) item = self.staffTable.verticalHeaderItem(2) item.setText(_translate("check", "New Row")) item = self.staffTable.verticalHeaderItem(3) item.setText(_translate("check", "New Row")) item = self.staffTable.horizontalHeaderItem(0) item.setText(_translate("check", "员工编号")) item = self.staffTable.horizontalHeaderItem(1) item.setText(_translate("check", "姓名")) item = self.staffTable.horizontalHeaderItem(2) item.setText(_translate("check", "性别")) item = self.staffTable.horizontalHeaderItem(3) item.setText(_translate("check", "部门")) item = self.staffTable.horizontalHeaderItem(4) item.setText(_translate("check", "职位")) #self.label_4.setText(_translate("check", " ")) self.label.setText(_translate("check", "当前日期:")) self.nowdate.setText(_translate("check", "2018-09")) self.label_3.setText(_translate("check", "姓名:")) self.label_sname.setText(_translate("check", "")) self.label_5.setText(_translate("check", "员工编号:")) self.label_sno.setText(_translate("check", "")) self.label_7.setText(_translate("check", "性别:")) self.label_ssex.setText(_translate("check", "")) self.label_9.setText(_translate("check", "部门:")) self.label_dname.setText(_translate("check", "")) self.label_11.setText(_translate("check", "职位:")) self.label_pname.setText(_translate("check", "")) self.label_14.setText(_translate("check", "出勤日:")) self.label_18.setText(_translate("check", "请假日:")) self.label_19.setText(_translate("check", "矿工日:")) self.label_20.setText(_translate("check", "加班日:")) self.submitButton.setText(_translate("check", "确认")) def readMysql(self): db = pymysql.connect("localhost", "root", "123456", db="personnel_man") cur = db.cursor() sql = "select s.s_no,s_name,s_sex,d.d_name,p.p_name from staff as s,sp,department as d,professional as p "+\ " where s.s_no = sp.s_no and sp.d_no=d.d_no and sp.p_no=p.p_no order by (s.s_no+0) desc" try: cur.execute(sql) except Exception as e: print(e) len = cur.fetchall().__len__() cur.execute(sql) self.staffTable.setRowCount(len) k = 0 for i in cur: w = 0 for j in i: newItem = QtWidgets.QTableWidgetItem(str(j)) self.staffTable.setItem(k, w, newItem) w += 1 k += 1 year_month = datetime.datetime.now().strftime('%Y-%m') self.nowdate.setText(year_month) cur.close() db.close() def searchRecord(self): db = pymysql.connect("localhost", "root", "123456", db="personnel_man") cur = db.cursor() if (self.searchText.text() == ""): sql = "select s.s_no,s_name,s_sex,d.d_name,p.p_name from staff as s,sp,department as d,professional as p " + \ " where s.s_no = sp.s_no and sp.d_no=d.d_no and sp.p_no=p.p_no order by (s.s_no+0) desc" cur.execute(sql) len = cur.fetchall().__len__() cur.execute(sql) self.staffTable.setRowCount(len) k = 0 for i in cur: w = 0 for j in i: newItem = QtWidgets.QTableWidgetItem(str(j)) self.staffTable.setItem(k, w, newItem) w += 1 k += 1 return # 输入框内容 temp = self.searchText.text() s = '%' + temp + '%' # 分类查询 conditionChoice = self.comboBox.currentText() if (conditionChoice == "按姓名查找"): sql = "select s.s_no,s_name,s_sex,d.d_name,p.p_name from staff as s,sp,department as d,professional as p " + \ " where s.s_no = sp.s_no and sp.d_no=d.d_no and sp.p_no=p.p_no"+\ " and s.s_name LIKE '%s' order by (s.s_no+0) desc" % (s) elif (conditionChoice == "按工号查找"): sql = "select s.s_no,s_name,s_sex,d.d_name,p.p_name from staff as s,sp,department as d,professional as p " + \ " where s.s_no = sp.s_no and sp.d_no=d.d_no and sp.p_no=p.p_no" + \ " and s.s_no LIKE '%s' order by (s.s_no+0) desc" % (s) elif (conditionChoice == "按部门查找"): sql = "select s.s_no,s_name,s_sex,d.d_name,p.p_name from staff as s,sp,department as d,professional as p " + \ " where s.s_no = sp.s_no and sp.d_no=d.d_no and sp.p_no=p.p_no" + \ " and d.d_name LIKE '%s' order by (s.s_no+0) desc" % (s) self.staffTable.clearContents() # 清空表格 # 重新查找后生成表格 cur.execute(sql) len = cur.fetchall().__len__() cur.execute(sql) self.staffTable.setRowCount(len) k = 0 for i in cur: w = 0 for j in i: newItem = QtWidgets.QTableWidgetItem(str(j)) self.staffTable.setItem(k, w, newItem) w += 1 k += 1 cur.close() db.close() def setInfo(self): row = self.staffTable.currentRow() sno = self.staffTable.item(row, 0).text() sname = self.staffTable.item(row, 1).text() ssex = self.staffTable.item(row, 2).text() dname = self.staffTable.item(row, 3).text() pname = self.staffTable.item(row, 4).text() self.label_sno.setText(sno) self.label_sname.setText(sname) self.label_ssex.setText(ssex) self.label_pname.setText(pname) self.label_dname.setText(dname) def submitInfo(self): db = pymysql.connect("localhost", "root", "123456", db="personnel_man") cur = db.cursor() row = self.staffTable.currentRow() test = self.label_sno.text() #判断当前是否有选中的员工 if test == '': QtWidgets.QMessageBox.question(self, '提示框', "你还未填写信息!", QtWidgets.QMessageBox.Yes) return #获取当前列表中的信息,并且显示在旁边 sno = self.staffTable.item(row, 0).text() date = self.nowdate.text() c_odays = self.spinBox_odays.text() c_adays = self.spinBox_adays.text() c_ldays = self.spinBox_ldays.text() c_tdays = self.spinBox_tdays.text() print(c_odays,c_adays,c_ldays,c_tdays) #数据库中有本月记录 sql = "select * from checking where s_no = '%s' and c_date = '%s'"%(sno,date) cur.execute(sql) len = cur.fetchall().__len__() if len == 0: sql = "insert into checking values ('%s','%s','%s','%s','%s','%s')" %(sno,date,c_tdays,c_ldays,c_odays,c_adays) try: cur.execute(sql) QtWidgets.QMessageBox.question(self, '提示框', "添加成功!" , QtWidgets.QMessageBox.Yes) db.commit() except Exception as e: print(e) else: reply = QtWidgets.QMessageBox.question(self, '提示框', "数据库中已有%s的数据是否要修改?"%(date), QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No, QtWidgets.QMessageBox.No) if reply == QtWidgets.QMessageBox.Yes: sql = "update checking set c_odays = '%s',c_adays = '%s',c_ldays ='%s',c_tdays = '%s' where s_no='%s' and c_date = '%s'"\ %(c_odays,c_adays,c_ldays,c_tdays,sno,date) try: cur.execute(sql) QtWidgets.QMessageBox.question(self, '提示框', "修改成功!", QtWidgets.QMessageBox.Yes) db.commit() except Exception as e: print(e) else: return if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) mainMindow = checkChange() mainMindow.show() sys.exit(app.exec_()) -------------------------------------------------------------------------------- /checkTable.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'checkTable.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.9 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | #考勤历史查询 9 | 10 | import sys 11 | import pymysql 12 | import datetime 13 | from PyQt5 import QtCore, QtGui, QtWidgets 14 | 15 | class checkHistory(QtWidgets.QTableWidget): 16 | def __init__(self): 17 | super().__init__() 18 | self.setupUi(self) 19 | 20 | def setupUi(self, check): 21 | check.setObjectName("check") 22 | check.resize(1052, 624) 23 | self.verticalLayoutWidget = QtWidgets.QWidget(check) 24 | self.verticalLayoutWidget.setGeometry(QtCore.QRect(5, 5, 870, 525)) 25 | self.verticalLayoutWidget.setObjectName("verticalLayoutWidget") 26 | self.checkLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget) 27 | self.checkLayout.setContentsMargins(0, 0, 0, 0) 28 | self.checkLayout.setObjectName("checkLayout") 29 | self.gridLayout_3 = QtWidgets.QGridLayout() 30 | self.gridLayout_3.setObjectName("gridLayout_3") 31 | self.searchButton = QtWidgets.QPushButton(self.verticalLayoutWidget) 32 | #self.searchButton.setStyleSheet("font: 12pt \"Adobe Arabic\";") 33 | self.searchButton.setObjectName("searchButton") 34 | self.gridLayout_3.addWidget(self.searchButton, 0, 2, 1, 1) 35 | self.searchText = QtWidgets.QLineEdit(self.verticalLayoutWidget) 36 | #self.searchText.setStyleSheet("font: 16pt \"Adobe Arabic\";") 37 | self.searchText.setText("") 38 | self.searchText.setObjectName("searchText") 39 | self.gridLayout_3.addWidget(self.searchText, 0, 0, 1, 1) 40 | self.comboBox = QtWidgets.QComboBox(self.verticalLayoutWidget) 41 | #self.comboBox.setStyleSheet("font: 12pt \"Adobe Arabic\";") 42 | self.comboBox.setObjectName("comboBox") 43 | self.comboBox.addItem("") 44 | self.comboBox.addItem("") 45 | self.comboBox.addItem("") 46 | self.comboBox.addItem("") 47 | self.gridLayout_3.addWidget(self.comboBox, 0, 3, 1, 1) 48 | self.label_15 = QtWidgets.QLabel(self.verticalLayoutWidget) 49 | self.label_15.setStyleSheet("font: 30pt \"Adobe Arabic\";") 50 | self.label_15.setText("") 51 | self.label_15.setObjectName("label_15") 52 | self.gridLayout_3.addWidget(self.label_15, 0, 1, 1, 1) 53 | self.checkLayout.addLayout(self.gridLayout_3) 54 | self.checkTable = QtWidgets.QTableWidget(self.verticalLayoutWidget) 55 | self.checkTable.setEditTriggers(QtWidgets.QTableWidget.NoEditTriggers) 56 | self.checkTable.setSelectionBehavior(QtWidgets.QTableWidget.SelectRows) 57 | self.checkTable.setEnabled(True) 58 | self.checkTable.setTabletTracking(False) 59 | self.checkTable.setAcceptDrops(False) 60 | self.checkTable.setLayoutDirection(QtCore.Qt.LeftToRight) 61 | self.checkTable.setStyleSheet("") 62 | self.checkTable.setAlternatingRowColors(True) 63 | self.checkTable.setShowGrid(True) 64 | self.checkTable.setWordWrap(False) 65 | self.checkTable.setCornerButtonEnabled(True) 66 | self.checkTable.setObjectName("checkTable") 67 | self.checkTable.setColumnCount(9) 68 | self.checkTable.setRowCount(4) 69 | item = QtWidgets.QTableWidgetItem() 70 | self.checkTable.setVerticalHeaderItem(0, item) 71 | item = QtWidgets.QTableWidgetItem() 72 | self.checkTable.setVerticalHeaderItem(1, item) 73 | item = QtWidgets.QTableWidgetItem() 74 | self.checkTable.setVerticalHeaderItem(2, item) 75 | item = QtWidgets.QTableWidgetItem() 76 | self.checkTable.setVerticalHeaderItem(3, item) 77 | item = QtWidgets.QTableWidgetItem() 78 | font = QtGui.QFont() 79 | font.setPointSize(10) 80 | item.setFont(font) 81 | self.checkTable.setHorizontalHeaderItem(0, item) 82 | item = QtWidgets.QTableWidgetItem() 83 | self.checkTable.setHorizontalHeaderItem(1, item) 84 | item = QtWidgets.QTableWidgetItem() 85 | self.checkTable.setHorizontalHeaderItem(2, item) 86 | item = QtWidgets.QTableWidgetItem() 87 | self.checkTable.setHorizontalHeaderItem(3, item) 88 | item = QtWidgets.QTableWidgetItem() 89 | self.checkTable.setHorizontalHeaderItem(4, item) 90 | item = QtWidgets.QTableWidgetItem() 91 | self.checkTable.setHorizontalHeaderItem(5, item) 92 | item = QtWidgets.QTableWidgetItem() 93 | self.checkTable.setHorizontalHeaderItem(6, item) 94 | item = QtWidgets.QTableWidgetItem() 95 | self.checkTable.setHorizontalHeaderItem(7, item) 96 | item = QtWidgets.QTableWidgetItem() 97 | self.checkTable.setHorizontalHeaderItem(8, item) 98 | self.checkTable.horizontalHeader().setVisible(True) 99 | self.checkTable.horizontalHeader().setCascadingSectionResizes(False) 100 | self.checkTable.horizontalHeader().setHighlightSections(True) 101 | self.checkTable.horizontalHeader().setSortIndicatorShown(False) 102 | self.checkTable.horizontalHeader().setStretchLastSection(True) 103 | self.checkTable.verticalHeader().setVisible(False) 104 | self.checkTable.verticalHeader().setCascadingSectionResizes(False) 105 | self.checkTable.verticalHeader().setSortIndicatorShown(False) 106 | self.checkTable.verticalHeader().setStretchLastSection(False) 107 | self.checkLayout.addWidget(self.checkTable) 108 | 109 | self.retranslateUi(check) 110 | QtCore.QMetaObject.connectSlotsByName(check) 111 | 112 | self.readMysql() 113 | self.searchButton.clicked.connect(self.searchRecord) 114 | self.searchText.editingFinished.connect(self.searchRecord) 115 | 116 | # 右键删除 117 | self.checkTable.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) 118 | self.checkTable.customContextMenuRequested[QtCore.QPoint].connect(self.MenuShow) 119 | 120 | def retranslateUi(self, check): 121 | _translate = QtCore.QCoreApplication.translate 122 | check.setWindowTitle(_translate("check", "Form")) 123 | self.searchButton.setText(_translate("check", "查询")) 124 | self.comboBox.setItemText(0, _translate("check", "按姓名查找")) 125 | self.comboBox.setItemText(1, _translate("check", "按工号查找")) 126 | self.comboBox.setItemText(2, _translate("check", "按部门查找")) 127 | self.comboBox.setItemText(3, _translate("check", "按日期查找")) 128 | self.checkTable.setSortingEnabled(False) 129 | item = self.checkTable.verticalHeaderItem(0) 130 | item.setText(_translate("check", "New Row")) 131 | item = self.checkTable.verticalHeaderItem(1) 132 | item.setText(_translate("check", "New Row")) 133 | item = self.checkTable.verticalHeaderItem(2) 134 | item.setText(_translate("check", "New Row")) 135 | item = self.checkTable.verticalHeaderItem(3) 136 | item.setText(_translate("check", "New Row")) 137 | item = self.checkTable.horizontalHeaderItem(0) 138 | item.setText(_translate("check", "员工编号")) 139 | item = self.checkTable.horizontalHeaderItem(1) 140 | item.setText(_translate("check", "姓名")) 141 | item = self.checkTable.horizontalHeaderItem(2) 142 | item.setText(_translate("check", "性别")) 143 | item = self.checkTable.horizontalHeaderItem(3) 144 | item.setText(_translate("check", "部门")) 145 | item = self.checkTable.horizontalHeaderItem(4) 146 | item.setText(_translate("check", "职位")) 147 | item = self.checkTable.horizontalHeaderItem(5) 148 | item.setText(_translate("check", "日期")) 149 | item = self.checkTable.horizontalHeaderItem(6) 150 | item.setText(_translate("check", "加班日")) 151 | item = self.checkTable.horizontalHeaderItem(7) 152 | item.setText(_translate("check", "请假日")) 153 | item = self.checkTable.horizontalHeaderItem(8) 154 | item.setText(_translate("check", "旷工日")) 155 | 156 | def readMysql(self): 157 | db = pymysql.connect("localhost", "root", "123456", db="personnel_man") 158 | cur = db.cursor() 159 | 160 | sql = "select c.s_no,s.s_name,s.s_sex,department.d_name,professional.p_name,c_date,c_odays,c_ldays,c_adays "+\ 161 | "from checking as c,staff as s,sp,department,professional " + \ 162 | " where c.s_no = s.s_no and c.s_no = sp.s_no and sp.p_no = professional.p_no and sp.d_no = department.d_no order by (c.s_no+0) desc" 163 | 164 | try: 165 | cur.execute(sql) 166 | except Exception as e: 167 | print(e) 168 | len = cur.fetchall().__len__() 169 | 170 | cur.execute(sql) 171 | self.checkTable.setRowCount(len) 172 | 173 | k = 0 174 | for i in cur: 175 | w = 0 176 | for j in i: 177 | newItem = QtWidgets.QTableWidgetItem(str(j)) 178 | self.checkTable.setItem(k, w, newItem) 179 | w += 1 180 | k += 1 181 | 182 | cur.close() 183 | db.close() 184 | 185 | def searchRecord(self): 186 | db = pymysql.connect("localhost", "root", "123456", db="personnel_man") 187 | cur = db.cursor() 188 | 189 | if (self.searchText.text() == ""): 190 | sql = "select c.s_no,s.s_name,s.s_sex,department.d_name,professional.p_name,c_date,c_odays,c_ldays,c_adays from checking as c,staff as s,sp,department,professional " + \ 191 | " where c.s_no = s.s_no and c.s_no = sp.s_no and sp.p_no = professional.p_no and sp.d_no = department.d_no order by (c.s_no+0) desc" 192 | 193 | cur.execute(sql) 194 | len = cur.fetchall().__len__() 195 | 196 | cur.execute(sql) 197 | self.checkTable.setRowCount(len) 198 | 199 | k = 0 200 | for i in cur: 201 | w = 0 202 | for j in i: 203 | newItem = QtWidgets.QTableWidgetItem(str(j)) 204 | self.checkTable.setItem(k, w, newItem) 205 | w += 1 206 | k += 1 207 | return 208 | 209 | # 输入框内容 210 | 211 | temp = self.searchText.text() 212 | 213 | s = '%' + temp + '%' 214 | 215 | # 分类查询 216 | conditionChoice = self.comboBox.currentText() 217 | 218 | if (conditionChoice == "按姓名查找"): 219 | sql = "select c.s_no,s.s_name,s.s_sex,department.d_name,professional.p_name,c_date,c_odays,c_ldays,c_adays from checking as c,staff as s,sp,department,professional " + \ 220 | " where c.s_no = s.s_no and c.s_no = sp.s_no and sp.p_no = professional.p_no and sp.d_no = department.d_no"+\ 221 | " and s.s_name LIKE '%s' order by (c.s_no+0) desc" %(s) 222 | 223 | 224 | elif (conditionChoice == "按工号查找"): 225 | sql = "select c.s_no,s.s_name,s.s_sex,department.d_name,professional.p_name,c_date,c_odays,c_ldays,c_adays from checking as c,staff as s,sp,department,professional " + \ 226 | " where c.s_no = s.s_no and c.s_no = sp.s_no and sp.p_no = professional.p_no and sp.d_no = department.d_no" + \ 227 | " and s.s_no LIKE '%s' order by (c.s_no+0) desc" % (s) 228 | 229 | elif (conditionChoice == "按部门查找"): 230 | sql = "select c.s_no,s.s_name,s.s_sex,department.d_name,professional.p_name,c_date,c_odays,c_ldays,c_adays from checking as c,staff as s,sp,department,professional " + \ 231 | " where c.s_no = s.s_no and c.s_no = sp.s_no and sp.p_no = professional.p_no and sp.d_no = department.d_no" + \ 232 | " and department.d_name LIKE '%s' order by (c.s_no+0) desc" % (s) 233 | 234 | elif (conditionChoice == "按日期查找"): 235 | sql = "select c.s_no,s.s_name,s.s_sex,department.d_name,professional.p_name,c_date,c_odays,c_ldays,c_adays from checking as c,staff as s,sp,department,professional " + \ 236 | " where c.s_no = s.s_no and c.s_no = sp.s_no and sp.p_no = professional.p_no and sp.d_no = department.d_no" + \ 237 | " and c.c_date LIKE '%s' order by (c.s_no+0) desc" % (s) 238 | 239 | self.checkTable.clearContents() 240 | # 清空表格 241 | 242 | # 重新查找后生成表格 243 | cur.execute(sql) 244 | len = cur.fetchall().__len__() 245 | 246 | cur.execute(sql) 247 | self.checkTable.setRowCount(len) 248 | 249 | k = 0 250 | for i in cur: 251 | w = 0 252 | for j in i: 253 | newItem = QtWidgets.QTableWidgetItem(str(j)) 254 | self.checkTable.setItem(k, w, newItem) 255 | w += 1 256 | k += 1 257 | 258 | cur.close() 259 | db.close() 260 | 261 | def MenuShow(self): 262 | try: 263 | 264 | rightMenu = QtWidgets.QMenu(self.checkTable) 265 | removeAction = QtWidgets.QAction(u"删除", self, 266 | triggered=self.deleteItem) # triggered 为右键菜单点击后的激活事件。这里slef.close调用的是系统自带的关闭事件。 267 | rightMenu.addAction(removeAction) 268 | 269 | rightMenu.exec_(QtGui.QCursor.pos()) 270 | 271 | except Exception as e: 272 | print(e) 273 | 274 | def deleteItem(self): 275 | db = pymysql.connect("localhost", "root", "123456", db="personnel_man") 276 | cur = db.cursor() 277 | 278 | row = self.checkTable.currentRow() 279 | s_no = self.checkTable.item(row, 0).text() 280 | c_date = self.checkTable.item(row, 5).text() 281 | 282 | reply = QtWidgets.QMessageBox.question(self, '提示框', 283 | "确定要删除这条数据吗?", QtWidgets.QMessageBox.Yes | 284 | QtWidgets.QMessageBox.No, QtWidgets.QMessageBox.No) 285 | 286 | if reply == QtWidgets.QMessageBox.Yes: 287 | # print("yes") 288 | sql = "delete from checking where s_no = '%s' and c_date = '%s'" % (s_no,c_date) 289 | try: 290 | cur.execute(sql) 291 | except Exception as e: 292 | print(e) 293 | 294 | self.checkTable.removeRow(row) 295 | db.commit() 296 | 297 | cur.close() 298 | db.close() 299 | 300 | 301 | if __name__ == "__main__": 302 | app = QtWidgets.QApplication(sys.argv) 303 | 304 | mainMindow = checkHistory() 305 | mainMindow.show() 306 | sys.exit(app.exec_()) 307 | -------------------------------------------------------------------------------- /db/personnel_man.sql: -------------------------------------------------------------------------------- 1 | /* 2 | Navicat MySQL Data Transfer 3 | 4 | Source Server : localhost_3306 5 | Source Server Type : MySQL 6 | Source Server Version : 50721 7 | Source Host : localhost:3306 8 | Source Schema : personnel_man 9 | 10 | Target Server Type : MySQL 11 | Target Server Version : 50721 12 | File Encoding : 65001 13 | 14 | Date: 17/09/2018 12:05:11 15 | */ 16 | 17 | SET NAMES utf8mb4; 18 | SET FOREIGN_KEY_CHECKS = 0; 19 | 20 | -- ---------------------------- 21 | -- Table structure for admin_table 22 | -- ---------------------------- 23 | DROP TABLE IF EXISTS `admin_table`; 24 | CREATE TABLE `admin_table` ( 25 | `s_no` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 26 | `pwd` char(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 27 | PRIMARY KEY (`s_no`) USING BTREE 28 | ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; 29 | 30 | -- ---------------------------- 31 | -- Records of admin_table 32 | -- ---------------------------- 33 | INSERT INTO `admin_table` VALUES ('000001', '123456'); 34 | 35 | -- ---------------------------- 36 | -- Table structure for checking 37 | -- ---------------------------- 38 | DROP TABLE IF EXISTS `checking`; 39 | CREATE TABLE `checking` ( 40 | `s_no` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 41 | `c_date` char(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 42 | `c_tdays` int(2) NULL DEFAULT NULL, 43 | `c_ldays` int(2) NULL DEFAULT NULL, 44 | `c_odays` int(2) NULL DEFAULT NULL, 45 | `c_adays` int(2) NULL DEFAULT NULL, 46 | PRIMARY KEY (`s_no`, `c_date`) USING BTREE, 47 | CONSTRAINT `checking_ibfk_1` FOREIGN KEY (`s_no`) REFERENCES `staff` (`s_no`) ON DELETE RESTRICT ON UPDATE RESTRICT 48 | ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; 49 | 50 | -- ---------------------------- 51 | -- Records of checking 52 | -- ---------------------------- 53 | INSERT INTO `checking` VALUES ('000001', '2018-08', 23, 2, 2, 0); 54 | INSERT INTO `checking` VALUES ('000001', '2018-09', 20, 0, 2, 0); 55 | INSERT INTO `checking` VALUES ('000002', '2018-09', 20, 0, 5, 0); 56 | INSERT INTO `checking` VALUES ('000004', '2018-08', 23, 0, 0, 0); 57 | INSERT INTO `checking` VALUES ('000005', '2018-07', 22, 0, 0, 0); 58 | INSERT INTO `checking` VALUES ('000005', '2018-08', 23, 0, 0, 0); 59 | INSERT INTO `checking` VALUES ('000006', '2018-07', 22, 0, 1, 0); 60 | INSERT INTO `checking` VALUES ('000008', '2018-09', 22, 1, 5, 0); 61 | 62 | -- ---------------------------- 63 | -- Table structure for current_salary 64 | -- ---------------------------- 65 | DROP TABLE IF EXISTS `current_salary`; 66 | CREATE TABLE `current_salary` ( 67 | `s_no` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 68 | `salary` float(11, 2) NOT NULL, 69 | `prize` float(11, 2) NULL DEFAULT NULL, 70 | `deduct` float(11, 2) NULL DEFAULT NULL, 71 | PRIMARY KEY (`s_no`) USING BTREE, 72 | CONSTRAINT `current_salary_ibfk_1` FOREIGN KEY (`s_no`) REFERENCES `staff` (`s_no`) ON DELETE RESTRICT ON UPDATE RESTRICT 73 | ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; 74 | 75 | -- ---------------------------- 76 | -- Records of current_salary 77 | -- ---------------------------- 78 | INSERT INTO `current_salary` VALUES ('000001', 5000.00, 200.00, 0.00); 79 | INSERT INTO `current_salary` VALUES ('000002', 5000.00, 0.00, 0.00); 80 | INSERT INTO `current_salary` VALUES ('000003', 5000.00, 500.00, 0.00); 81 | INSERT INTO `current_salary` VALUES ('000004', 4000.00, 100.00, 0.00); 82 | INSERT INTO `current_salary` VALUES ('000005', 3000.00, 0.00, 0.00); 83 | INSERT INTO `current_salary` VALUES ('000006', 3000.00, 0.00, 0.00); 84 | INSERT INTO `current_salary` VALUES ('000007', 3000.00, 100.00, 0.00); 85 | INSERT INTO `current_salary` VALUES ('000008', 3000.00, 100.00, 120.00); 86 | 87 | -- ---------------------------- 88 | -- Table structure for department 89 | -- ---------------------------- 90 | DROP TABLE IF EXISTS `department`; 91 | CREATE TABLE `department` ( 92 | `d_no` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 93 | `d_name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, 94 | `s_no` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, 95 | PRIMARY KEY (`d_no`) USING BTREE, 96 | INDEX `s_no`(`s_no`) USING BTREE, 97 | CONSTRAINT `department_ibfk_1` FOREIGN KEY (`s_no`) REFERENCES `staff` (`s_no`) ON DELETE RESTRICT ON UPDATE RESTRICT 98 | ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; 99 | 100 | -- ---------------------------- 101 | -- Records of department 102 | -- ---------------------------- 103 | INSERT INTO `department` VALUES ('000001', '策划部', '000001'); 104 | INSERT INTO `department` VALUES ('000002', '人事部', '000002'); 105 | INSERT INTO `department` VALUES ('000003', '广告部', '000003'); 106 | INSERT INTO `department` VALUES ('000004', '广告1部', '000004'); 107 | 108 | -- ---------------------------- 109 | -- Table structure for education 110 | -- ---------------------------- 111 | DROP TABLE IF EXISTS `education`; 112 | CREATE TABLE `education` ( 113 | `s_no` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 114 | `xl` char(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 115 | `major` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, 116 | `school` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, 117 | `graduate_date` date NULL DEFAULT NULL, 118 | PRIMARY KEY (`s_no`) USING BTREE, 119 | CONSTRAINT `education_ibfk_1` FOREIGN KEY (`s_no`) REFERENCES `staff` (`s_no`) ON DELETE RESTRICT ON UPDATE RESTRICT 120 | ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; 121 | 122 | -- ---------------------------- 123 | -- Records of education 124 | -- ---------------------------- 125 | INSERT INTO `education` VALUES ('000001', '本科', '电子商务', '东南大学', '2016-06-12'); 126 | INSERT INTO `education` VALUES ('000002', '研究生', '会计', '南京大学', '2016-06-12'); 127 | INSERT INTO `education` VALUES ('000003', '研究生', '广告学', '南京林业大学', '2016-06-12'); 128 | INSERT INTO `education` VALUES ('000004', '本科', '家居设计', '南京林业大学', '2016-06-12'); 129 | INSERT INTO `education` VALUES ('000005', '本科', '软件工程', '南京农业大学', '2016-06-12'); 130 | INSERT INTO `education` VALUES ('000006', '本科', '经济学', '南京邮电大学', '2016-06-12'); 131 | INSERT INTO `education` VALUES ('000007', '本科', '电子商务', '南京工业大学', '2016-06-12'); 132 | INSERT INTO `education` VALUES ('000008', '小学', NULL, NULL, NULL); 133 | 134 | -- ---------------------------- 135 | -- Table structure for personnel 136 | -- ---------------------------- 137 | DROP TABLE IF EXISTS `personnel`; 138 | CREATE TABLE `personnel` ( 139 | `p_no` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 140 | `s_no` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 141 | `predept` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 142 | `aftdept` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 143 | `prepost` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 144 | `aftpost` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 145 | `p_date` date NOT NULL, 146 | PRIMARY KEY (`p_no`) USING BTREE, 147 | INDEX `s_no`(`s_no`) USING BTREE, 148 | CONSTRAINT `personnel_ibfk_1` FOREIGN KEY (`s_no`) REFERENCES `staff` (`s_no`) ON DELETE RESTRICT ON UPDATE RESTRICT 149 | ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; 150 | 151 | -- ---------------------------- 152 | -- Records of personnel 153 | -- ---------------------------- 154 | INSERT INTO `personnel` VALUES ('1', '000001', '策划部', '策划部', '员工', '经理', '2017-07-01'); 155 | INSERT INTO `personnel` VALUES ('14', '000008', '无', '人事部', '无', '副经理', '2018-09-13'); 156 | INSERT INTO `personnel` VALUES ('15', '000008', '无', '人事部', '无', '实习生', '2018-09-13'); 157 | INSERT INTO `personnel` VALUES ('16', '000007', '策划部', '人事部', '实习生', '实习生', '2018-09-13'); 158 | INSERT INTO `personnel` VALUES ('17', '000008', '无', '人事部', '无', '副经理', '2018-09-13'); 159 | INSERT INTO `personnel` VALUES ('18', '000008', '无', '策划部', '无', '经理', '2018-09-13'); 160 | INSERT INTO `personnel` VALUES ('19', '000006', '策划部', '222', '实习生', '员工', '2018-09-13'); 161 | INSERT INTO `personnel` VALUES ('2', '000002', '人事部', '人事部', '实习生', '员工', '2017-08-15'); 162 | INSERT INTO `personnel` VALUES ('20', '000008', '策划部', '222', '经理', '员工', '2018-09-13'); 163 | INSERT INTO `personnel` VALUES ('21', '000003', '广告部', '222', '经理', '员工', '2018-09-13'); 164 | INSERT INTO `personnel` VALUES ('3', '000002', '人事部', '人事部', '员工', '经理', '2017-09-01'); 165 | INSERT INTO `personnel` VALUES ('4', '000003', '无', '人事部', '无', '经理', '2017-12-01'); 166 | INSERT INTO `personnel` VALUES ('5', '000004', '策划部', '策划部', '实习生', '员工', '2018-03-01'); 167 | 168 | -- ---------------------------- 169 | -- Table structure for professional 170 | -- ---------------------------- 171 | DROP TABLE IF EXISTS `professional`; 172 | CREATE TABLE `professional` ( 173 | `p_no` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 174 | `p_name` char(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 175 | PRIMARY KEY (`p_no`) USING BTREE 176 | ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; 177 | 178 | -- ---------------------------- 179 | -- Records of professional 180 | -- ---------------------------- 181 | INSERT INTO `professional` VALUES ('000001', '经理'); 182 | INSERT INTO `professional` VALUES ('000002', '副经理'); 183 | INSERT INTO `professional` VALUES ('000003', '员工'); 184 | INSERT INTO `professional` VALUES ('000004', '实习生'); 185 | 186 | -- ---------------------------- 187 | -- Table structure for salary 188 | -- ---------------------------- 189 | DROP TABLE IF EXISTS `salary`; 190 | CREATE TABLE `salary` ( 191 | `sa_no` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 192 | `s_no` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 193 | `leastpays` float(11, 2) NOT NULL, 194 | `prize` float(11, 2) NULL DEFAULT NULL, 195 | `doublingpays` float(11, 2) NULL DEFAULT NULL, 196 | `dkannuity` float(11, 2) NULL DEFAULT NULL, 197 | `dkinsurrance` float(11, 2) NULL DEFAULT NULL, 198 | `s_date` date NULL DEFAULT NULL, 199 | `deduct` float(11, 2) NULL DEFAULT NULL, 200 | `real_salary` float(10, 2) NULL DEFAULT NULL, 201 | PRIMARY KEY (`sa_no`) USING BTREE, 202 | INDEX `s_no`(`s_no`) USING BTREE, 203 | CONSTRAINT `salary_ibfk_1` FOREIGN KEY (`s_no`) REFERENCES `staff` (`s_no`) ON DELETE RESTRICT ON UPDATE RESTRICT 204 | ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; 205 | 206 | -- ---------------------------- 207 | -- Records of salary 208 | -- ---------------------------- 209 | INSERT INTO `salary` VALUES ('1', '000001', 3000.00, 240.00, 0.00, 160.00, 60.00, '2018-07-01', 0.00, 3000.00); 210 | INSERT INTO `salary` VALUES ('2', '000002', 3000.00, 240.00, 0.00, 160.00, 60.00, '2018-07-01', 0.00, 3000.00); 211 | INSERT INTO `salary` VALUES ('4', '000006', 3000.00, 0.00, 0.00, 240.00, 60.00, '2018-07-01', 0.00, 2700.00); 212 | INSERT INTO `salary` VALUES ('5', '000007', 3000.00, 0.00, 0.00, 240.00, 60.00, '2018-07-01', 0.00, 2700.00); 213 | INSERT INTO `salary` VALUES ('6', '000006', 3000.00, 0.00, 0.00, 240.00, 60.00, '2018-08-12', 0.00, 2700.00); 214 | INSERT INTO `salary` VALUES ('7', '000005', 3000.00, 0.00, 0.00, 240.00, 60.00, '2018-08-12', 0.00, 2700.00); 215 | INSERT INTO `salary` VALUES ('8', '000004', 4000.00, 100.00, 0.00, 320.00, 80.00, '2018-08-12', 0.00, 3700.00); 216 | INSERT INTO `salary` VALUES ('9', '000003', 5000.00, 500.00, 0.00, 400.00, 100.00, '2018-08-12', 0.00, 5000.00); 217 | 218 | -- ---------------------------- 219 | -- Table structure for sp 220 | -- ---------------------------- 221 | DROP TABLE IF EXISTS `sp`; 222 | CREATE TABLE `sp` ( 223 | `s_no` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 224 | `p_no` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 225 | `d_no` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 226 | `entry_time` date NOT NULL, 227 | PRIMARY KEY (`s_no`) USING BTREE, 228 | INDEX `d_no`(`d_no`) USING BTREE, 229 | INDEX `p_no`(`p_no`) USING BTREE, 230 | CONSTRAINT `sp_ibfk_1` FOREIGN KEY (`s_no`) REFERENCES `staff` (`s_no`) ON DELETE RESTRICT ON UPDATE RESTRICT, 231 | CONSTRAINT `sp_ibfk_3` FOREIGN KEY (`d_no`) REFERENCES `department` (`d_no`) ON DELETE RESTRICT ON UPDATE RESTRICT, 232 | CONSTRAINT `sp_ibfk_4` FOREIGN KEY (`p_no`) REFERENCES `professional` (`p_no`) ON DELETE RESTRICT ON UPDATE RESTRICT 233 | ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; 234 | 235 | -- ---------------------------- 236 | -- Records of sp 237 | -- ---------------------------- 238 | INSERT INTO `sp` VALUES ('000001', '000001', '000001', '2017-07-01'); 239 | INSERT INTO `sp` VALUES ('000002', '000001', '000002', '2017-09-01'); 240 | INSERT INTO `sp` VALUES ('000003', '000003', '000004', '2018-09-13'); 241 | INSERT INTO `sp` VALUES ('000004', '000003', '000004', '2018-09-13'); 242 | INSERT INTO `sp` VALUES ('000005', '000004', '000001', '2018-09-13'); 243 | INSERT INTO `sp` VALUES ('000006', '000003', '000004', '2018-09-13'); 244 | INSERT INTO `sp` VALUES ('000007', '000004', '000004', '2018-09-13'); 245 | INSERT INTO `sp` VALUES ('000008', '000003', '000004', '2018-09-13'); 246 | 247 | -- ---------------------------- 248 | -- Table structure for staff 249 | -- ---------------------------- 250 | DROP TABLE IF EXISTS `staff`; 251 | CREATE TABLE `staff` ( 252 | `s_no` char(6) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 253 | `s_name` char(8) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 254 | `s_sex` char(2) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 255 | `s_birth` date NOT NULL, 256 | `s_id` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 257 | `s_num` char(11) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 258 | `s_email` char(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 259 | `is_married` char(3) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 260 | `s_address` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, 261 | PRIMARY KEY (`s_no`) USING BTREE 262 | ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; 263 | 264 | -- ---------------------------- 265 | -- Records of staff 266 | -- ---------------------------- 267 | INSERT INTO `staff` VALUES ('000001', '王英才', '男', '1987-09-10', '3205221987', '123232', 'wang@163.com', '是', '南京玄武区'); 268 | INSERT INTO `staff` VALUES ('000002', '黎勇', '男', '1989-04-30', '3205221989', '12270113456', 'li@163.com', '是', '南京秦淮区'); 269 | INSERT INTO `staff` VALUES ('000003', '孙浩然', '男', '1987-02-10', '3223221989', '13470113456', 'sun@163.com', '是', '南京雨花台区'); 270 | INSERT INTO `staff` VALUES ('000004', '陈晓明', '女', '1987-05-10', '1223221122', '13776659521', 'xiaocheng@qq.com', '否', '南京栖霞区'); 271 | INSERT INTO `staff` VALUES ('000005', '秦佩佩', '女', '1981-06-10', '3221155432', '13655597553', 'Qing@qq.com', '否', '南京浦口'); 272 | INSERT INTO `staff` VALUES ('000006', '张伟', '男', '1990-07-20', '5542234763', '13422258832', 'Zzhang@qq.com', '否', '南京锁金村'); 273 | INSERT INTO `staff` VALUES ('000007', '包涵', '女', '1988-08-08', '1235745357', '18022235695', 'baobao@qq.com', '否', '南京龙蟠路'); 274 | INSERT INTO `staff` VALUES ('000008', '王子云', '男', '2018-01-01', '12347896545211', '13776625695', '1', '是', '1'); 275 | 276 | SET FOREIGN_KEY_CHECKS = 1; 277 | -------------------------------------------------------------------------------- /db_test.py: -------------------------------------------------------------------------------- 1 | import pymysql 2 | ''' 3 | #连接数据库 4 | con = pymysql.connect(host='localhost', 5 | user='user', 6 | password='123456', 7 | db='personnel_man', 8 | charset='utf8mb4', 9 | cursorclass=pymysql.cursors.DictCursor) 10 | try: 11 | with con.cursor() as cursor: 12 | #读取单条记录 13 | sql = "select 'd_no','d_name','s_no' from 'department' " 14 | cursor.execute(sql) 15 | result = cursor.fetchone() 16 | print(result) 17 | finally: 18 | con.close() 19 | 20 | ''' 21 | db = pymysql.connect("localhost","user","123456","personnel_man") 22 | 23 | cursor = db.cursor() 24 | try: 25 | cursor.execute("select * from department") 26 | results=cursor.fetchall() 27 | for row in results: 28 | dno = row[0] 29 | dname = row[1] 30 | sno = row[2] 31 | print(dname) 32 | except: 33 | print("error") 34 | db.close() 35 | -------------------------------------------------------------------------------- /delete_dept.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'delete_dept.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_delete_dept(object): 12 | def setupUi(self, delete_dept): 13 | delete_dept.setObjectName("delete_dept") 14 | delete_dept.resize(917, 571) 15 | delete_dept.setStyleSheet("background-color:#f4f9f4;") 16 | self.lineEdit = QtWidgets.QLineEdit(delete_dept) 17 | self.lineEdit.setGeometry(QtCore.QRect(390, 40, 121, 21)) 18 | self.lineEdit.setStyleSheet("font: 14pt \"华文行楷\";\n" 19 | "color:rgb(80, 126, 59);\n" 20 | "background-color:transparent;\n" 21 | "border:outset;") 22 | self.lineEdit.setObjectName("lineEdit") 23 | self.tableWidget = QtWidgets.QTableWidget(delete_dept) 24 | self.tableWidget.setGeometry(QtCore.QRect(140, 100, 621, 371)) 25 | self.tableWidget.setStyleSheet("border:outset;") 26 | self.tableWidget.setObjectName("tableWidget") 27 | self.tableWidget.setColumnCount(4) 28 | self.tableWidget.setRowCount(1) 29 | item = QtWidgets.QTableWidgetItem() 30 | self.tableWidget.setVerticalHeaderItem(0, item) 31 | item = QtWidgets.QTableWidgetItem() 32 | item.setTextAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignVCenter) 33 | self.tableWidget.setHorizontalHeaderItem(0, item) 34 | item = QtWidgets.QTableWidgetItem() 35 | self.tableWidget.setHorizontalHeaderItem(1, item) 36 | item = QtWidgets.QTableWidgetItem() 37 | self.tableWidget.setHorizontalHeaderItem(2, item) 38 | item = QtWidgets.QTableWidgetItem() 39 | self.tableWidget.setHorizontalHeaderItem(3, item) 40 | item = QtWidgets.QTableWidgetItem() 41 | item.setTextAlignment(QtCore.Qt.AlignCenter) 42 | self.tableWidget.setItem(0, 0, item) 43 | item = QtWidgets.QTableWidgetItem() 44 | item.setTextAlignment(QtCore.Qt.AlignCenter) 45 | self.tableWidget.setItem(0, 1, item) 46 | item = QtWidgets.QTableWidgetItem() 47 | item.setTextAlignment(QtCore.Qt.AlignCenter) 48 | self.tableWidget.setItem(0, 2, item) 49 | item = QtWidgets.QTableWidgetItem() 50 | item.setTextAlignment(QtCore.Qt.AlignCenter) 51 | self.tableWidget.setItem(0, 3, item) 52 | self.tableWidget.horizontalHeader().setVisible(False) 53 | self.tableWidget.horizontalHeader().setDefaultSectionSize(155) 54 | self.tableWidget.verticalHeader().setVisible(False) 55 | 56 | self.retranslateUi(delete_dept) 57 | QtCore.QMetaObject.connectSlotsByName(delete_dept) 58 | 59 | def retranslateUi(self, delete_dept): 60 | _translate = QtCore.QCoreApplication.translate 61 | delete_dept.setWindowTitle(_translate("delete_dept", "Form")) 62 | self.lineEdit.setText(_translate("delete_dept", "删除部门信息")) 63 | item = self.tableWidget.verticalHeaderItem(0) 64 | item.setText(_translate("delete_dept", "1")) 65 | item = self.tableWidget.horizontalHeaderItem(0) 66 | item.setText(_translate("delete_dept", "1")) 67 | item = self.tableWidget.horizontalHeaderItem(1) 68 | item.setText(_translate("delete_dept", "2")) 69 | item = self.tableWidget.horizontalHeaderItem(2) 70 | item.setText(_translate("delete_dept", "3")) 71 | item = self.tableWidget.horizontalHeaderItem(3) 72 | item.setText(_translate("delete_dept", "4")) 73 | __sortingEnabled = self.tableWidget.isSortingEnabled() 74 | self.tableWidget.setSortingEnabled(False) 75 | item = self.tableWidget.item(0, 0) 76 | item.setText(_translate("delete_dept", "部门编号")) 77 | item = self.tableWidget.item(0, 1) 78 | item.setText(_translate("delete_dept", "部门名称")) 79 | item = self.tableWidget.item(0, 2) 80 | item.setText(_translate("delete_dept", "部门经理")) 81 | item = self.tableWidget.item(0, 3) 82 | item.setText(_translate("delete_dept", "删除")) 83 | self.tableWidget.setSortingEnabled(__sortingEnabled) 84 | 85 | -------------------------------------------------------------------------------- /delete_staff.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'delete_staff.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_delete_staff(object): 12 | def setupUi(self, delete_staff): 13 | delete_staff.setObjectName("delete_staff") 14 | delete_staff.resize(918, 571) 15 | delete_staff.setStyleSheet("background-color:#f4f9f4;") 16 | self.lineEdit = QtWidgets.QLineEdit(delete_staff) 17 | self.lineEdit.setGeometry(QtCore.QRect(390, 40, 121, 21)) 18 | self.lineEdit.setStyleSheet("font: 14pt \"华文行楷\";\n" 19 | "color:rgb(80, 126, 59);\n" 20 | "background-color:transparent;\n" 21 | "border:outset;") 22 | self.lineEdit.setObjectName("lineEdit") 23 | self.tableWidget = QtWidgets.QTableWidget(delete_staff) 24 | self.tableWidget.setGeometry(QtCore.QRect(150, 100, 621, 351)) 25 | self.tableWidget.setStyleSheet("border:outset;") 26 | self.tableWidget.setObjectName("tableWidget") 27 | self.tableWidget.setColumnCount(4) 28 | self.tableWidget.setRowCount(1) 29 | item = QtWidgets.QTableWidgetItem() 30 | self.tableWidget.setVerticalHeaderItem(0, item) 31 | item = QtWidgets.QTableWidgetItem() 32 | item.setTextAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignVCenter) 33 | self.tableWidget.setHorizontalHeaderItem(0, item) 34 | item = QtWidgets.QTableWidgetItem() 35 | self.tableWidget.setHorizontalHeaderItem(1, item) 36 | item = QtWidgets.QTableWidgetItem() 37 | self.tableWidget.setHorizontalHeaderItem(2, item) 38 | item = QtWidgets.QTableWidgetItem() 39 | self.tableWidget.setHorizontalHeaderItem(3, item) 40 | item = QtWidgets.QTableWidgetItem() 41 | item.setTextAlignment(QtCore.Qt.AlignCenter) 42 | self.tableWidget.setItem(0, 0, item) 43 | item = QtWidgets.QTableWidgetItem() 44 | item.setTextAlignment(QtCore.Qt.AlignCenter) 45 | self.tableWidget.setItem(0, 1, item) 46 | item = QtWidgets.QTableWidgetItem() 47 | item.setTextAlignment(QtCore.Qt.AlignCenter) 48 | self.tableWidget.setItem(0, 2, item) 49 | item = QtWidgets.QTableWidgetItem() 50 | item.setTextAlignment(QtCore.Qt.AlignCenter) 51 | self.tableWidget.setItem(0, 3, item) 52 | self.tableWidget.horizontalHeader().setVisible(False) 53 | self.tableWidget.horizontalHeader().setDefaultSectionSize(155) 54 | self.tableWidget.verticalHeader().setVisible(False) 55 | 56 | self.retranslateUi(delete_staff) 57 | QtCore.QMetaObject.connectSlotsByName(delete_staff) 58 | 59 | def retranslateUi(self, delete_staff): 60 | _translate = QtCore.QCoreApplication.translate 61 | delete_staff.setWindowTitle(_translate("delete_staff", "Form")) 62 | self.lineEdit.setText(_translate("delete_staff", "删除员工信息")) 63 | item = self.tableWidget.verticalHeaderItem(0) 64 | item.setText(_translate("delete_staff", "1")) 65 | item = self.tableWidget.horizontalHeaderItem(0) 66 | item.setText(_translate("delete_staff", "1")) 67 | item = self.tableWidget.horizontalHeaderItem(1) 68 | item.setText(_translate("delete_staff", "2")) 69 | item = self.tableWidget.horizontalHeaderItem(2) 70 | item.setText(_translate("delete_staff", "3")) 71 | item = self.tableWidget.horizontalHeaderItem(3) 72 | item.setText(_translate("delete_staff", "4")) 73 | __sortingEnabled = self.tableWidget.isSortingEnabled() 74 | self.tableWidget.setSortingEnabled(False) 75 | item = self.tableWidget.item(0, 0) 76 | item.setText(_translate("delete_staff", "工号")) 77 | item = self.tableWidget.item(0, 1) 78 | item.setText(_translate("delete_staff", "姓名")) 79 | item = self.tableWidget.item(0, 2) 80 | item.setText(_translate("delete_staff", "部门")) 81 | item = self.tableWidget.item(0, 3) 82 | item.setText(_translate("delete_staff", "删除")) 83 | self.tableWidget.setSortingEnabled(__sortingEnabled) 84 | 85 | -------------------------------------------------------------------------------- /dept.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'dept.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_Form(object): 12 | def setupUi(self, Form): 13 | Form.setObjectName("Form") 14 | Form.resize(675, 304) 15 | Form.setStyleSheet("border:outset;") 16 | self.tableWidget = QtWidgets.QTableWidget(Form) 17 | self.tableWidget.setGeometry(QtCore.QRect(20, 20, 611, 201)) 18 | self.tableWidget.setObjectName("tableWidget") 19 | self.tableWidget.setColumnCount(3) 20 | self.tableWidget.setRowCount(1) 21 | item = QtWidgets.QTableWidgetItem() 22 | self.tableWidget.setVerticalHeaderItem(0, item) 23 | item = QtWidgets.QTableWidgetItem() 24 | item.setTextAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignVCenter) 25 | self.tableWidget.setHorizontalHeaderItem(0, item) 26 | item = QtWidgets.QTableWidgetItem() 27 | self.tableWidget.setHorizontalHeaderItem(1, item) 28 | item = QtWidgets.QTableWidgetItem() 29 | self.tableWidget.setHorizontalHeaderItem(2, item) 30 | item = QtWidgets.QTableWidgetItem() 31 | item.setTextAlignment(QtCore.Qt.AlignCenter) 32 | self.tableWidget.setItem(0, 0, item) 33 | item = QtWidgets.QTableWidgetItem() 34 | item.setTextAlignment(QtCore.Qt.AlignCenter) 35 | self.tableWidget.setItem(0, 1, item) 36 | item = QtWidgets.QTableWidgetItem() 37 | item.setTextAlignment(QtCore.Qt.AlignCenter) 38 | self.tableWidget.setItem(0, 2, item) 39 | self.tableWidget.horizontalHeader().setVisible(False) 40 | self.tableWidget.horizontalHeader().setDefaultSectionSize(203) 41 | self.tableWidget.verticalHeader().setVisible(False) 42 | 43 | self.retranslateUi(Form) 44 | QtCore.QMetaObject.connectSlotsByName(Form) 45 | 46 | def retranslateUi(self, Form): 47 | _translate = QtCore.QCoreApplication.translate 48 | Form.setWindowTitle(_translate("Form", "Form")) 49 | item = self.tableWidget.verticalHeaderItem(0) 50 | item.setText(_translate("Form", "1")) 51 | item = self.tableWidget.horizontalHeaderItem(0) 52 | item.setText(_translate("Form", "1")) 53 | item = self.tableWidget.horizontalHeaderItem(1) 54 | item.setText(_translate("Form", "2")) 55 | item = self.tableWidget.horizontalHeaderItem(2) 56 | item.setText(_translate("Form", "3")) 57 | __sortingEnabled = self.tableWidget.isSortingEnabled() 58 | self.tableWidget.setSortingEnabled(False) 59 | item = self.tableWidget.item(0, 0) 60 | item.setText(_translate("Form", "部门编号")) 61 | item = self.tableWidget.item(0, 1) 62 | item.setText(_translate("Form", "部门名称")) 63 | item = self.tableWidget.item(0, 2) 64 | item.setText(_translate("Form", "部门经理")) 65 | self.tableWidget.setSortingEnabled(__sortingEnabled) 66 | 67 | -------------------------------------------------------------------------------- /dept_detail.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'dept_detail.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_dept_detail(object): 12 | def setupUi(self, dept_detail): 13 | dept_detail.setObjectName("dept_detail") 14 | dept_detail.resize(917, 571) 15 | dept_detail.setStyleSheet("background-color:#f4f9f4;") 16 | self.back = QtWidgets.QPushButton(dept_detail) 17 | self.back.setEnabled(True) 18 | self.back.setGeometry(QtCore.QRect(60, 30, 31, 31)) 19 | self.back.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 20 | self.back.setStyleSheet("border-image: url(:/newPrefix/images/back.png);") 21 | self.back.setText("") 22 | self.back.setObjectName("back") 23 | self.lineEdit = QtWidgets.QLineEdit(dept_detail) 24 | self.lineEdit.setGeometry(QtCore.QRect(390, 40, 121, 21)) 25 | self.lineEdit.setStyleSheet("font: 14pt \"华文行楷\";\n" 26 | "color:rgb(80, 126, 59);\n" 27 | "background-color:transparent;\n" 28 | "border:outset;") 29 | self.lineEdit.setObjectName("lineEdit") 30 | self.label = QtWidgets.QLabel(dept_detail) 31 | self.label.setGeometry(QtCore.QRect(320, 80, 81, 31)) 32 | self.label.setStyleSheet("font: 11pt \"幼圆\";") 33 | self.label.setObjectName("label") 34 | self.name = QtWidgets.QLineEdit(dept_detail) 35 | self.name.setGeometry(QtCore.QRect(400, 80, 91, 31)) 36 | self.name.setStyleSheet("border:outset;") 37 | self.name.setText("") 38 | self.name.setObjectName("name") 39 | self.manager = QtWidgets.QLineEdit(dept_detail) 40 | self.manager.setGeometry(QtCore.QRect(590, 80, 71, 31)) 41 | self.manager.setStyleSheet("border:outset;") 42 | self.manager.setText("") 43 | self.manager.setObjectName("manager") 44 | self.label_2 = QtWidgets.QLabel(dept_detail) 45 | self.label_2.setGeometry(QtCore.QRect(500, 80, 81, 31)) 46 | self.label_2.setStyleSheet("font: 11pt \"幼圆\";") 47 | self.label_2.setObjectName("label_2") 48 | self.label_9 = QtWidgets.QLabel(dept_detail) 49 | self.label_9.setGeometry(QtCore.QRect(150, 80, 81, 31)) 50 | self.label_9.setStyleSheet("font: 11pt \"幼圆\";") 51 | self.label_9.setObjectName("label_9") 52 | self.no = QtWidgets.QLineEdit(dept_detail) 53 | self.no.setEnabled(False) 54 | self.no.setGeometry(QtCore.QRect(230, 80, 81, 31)) 55 | self.no.setStyleSheet("border:outset;\n" 56 | "background:transparent;\n" 57 | "") 58 | self.no.setText("") 59 | self.no.setObjectName("no") 60 | self.num = QtWidgets.QLineEdit(dept_detail) 61 | self.num.setGeometry(QtCore.QRect(800, 80, 81, 31)) 62 | self.num.setStyleSheet("border:outset;") 63 | self.num.setText("") 64 | self.num.setObjectName("num") 65 | self.tableWidget = QtWidgets.QTableWidget(dept_detail) 66 | self.tableWidget.setGeometry(QtCore.QRect(150, 190, 611, 321)) 67 | self.tableWidget.setStyleSheet("border:outset;") 68 | self.tableWidget.setObjectName("tableWidget") 69 | self.tableWidget.setColumnCount(3) 70 | self.tableWidget.setRowCount(1) 71 | item = QtWidgets.QTableWidgetItem() 72 | self.tableWidget.setVerticalHeaderItem(0, item) 73 | item = QtWidgets.QTableWidgetItem() 74 | item.setTextAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignVCenter) 75 | self.tableWidget.setHorizontalHeaderItem(0, item) 76 | item = QtWidgets.QTableWidgetItem() 77 | self.tableWidget.setHorizontalHeaderItem(1, item) 78 | item = QtWidgets.QTableWidgetItem() 79 | self.tableWidget.setHorizontalHeaderItem(2, item) 80 | item = QtWidgets.QTableWidgetItem() 81 | item.setTextAlignment(QtCore.Qt.AlignCenter) 82 | self.tableWidget.setItem(0, 0, item) 83 | item = QtWidgets.QTableWidgetItem() 84 | item.setTextAlignment(QtCore.Qt.AlignCenter) 85 | self.tableWidget.setItem(0, 1, item) 86 | item = QtWidgets.QTableWidgetItem() 87 | item.setTextAlignment(QtCore.Qt.AlignCenter) 88 | self.tableWidget.setItem(0, 2, item) 89 | self.tableWidget.horizontalHeader().setVisible(False) 90 | self.tableWidget.horizontalHeader().setDefaultSectionSize(203) 91 | self.tableWidget.verticalHeader().setVisible(False) 92 | self.lineEdit_3 = QtWidgets.QLineEdit(dept_detail) 93 | self.lineEdit_3.setGeometry(QtCore.QRect(380, 140, 161, 31)) 94 | self.lineEdit_3.setStyleSheet("font: 13pt \"黑体\";\n" 95 | "color:rgb(80, 126, 59);\n" 96 | "border:outset;") 97 | self.lineEdit_3.setObjectName("lineEdit_3") 98 | self.label_3 = QtWidgets.QLabel(dept_detail) 99 | self.label_3.setGeometry(QtCore.QRect(670, 80, 121, 31)) 100 | self.label_3.setStyleSheet("font: 11pt \"幼圆\";\n" 101 | "border:outset;") 102 | self.label_3.setObjectName("label_3") 103 | self.label.setBuddy(self.name) 104 | self.label_2.setBuddy(self.manager) 105 | self.label_9.setBuddy(self.no) 106 | self.label_3.setBuddy(self.num) 107 | 108 | self.retranslateUi(dept_detail) 109 | self.back.clicked.connect(dept_detail.goback) 110 | QtCore.QMetaObject.connectSlotsByName(dept_detail) 111 | 112 | def retranslateUi(self, dept_detail): 113 | _translate = QtCore.QCoreApplication.translate 114 | dept_detail.setWindowTitle(_translate("dept_detail", "Form")) 115 | self.lineEdit.setText(_translate("dept_detail", "部门详细信息")) 116 | self.label.setText(_translate("dept_detail", "部门名称:")) 117 | self.label_2.setText(_translate("dept_detail", "部门经理:")) 118 | self.label_9.setText(_translate("dept_detail", "部门编号:")) 119 | item = self.tableWidget.verticalHeaderItem(0) 120 | item.setText(_translate("dept_detail", "1")) 121 | item = self.tableWidget.horizontalHeaderItem(0) 122 | item.setText(_translate("dept_detail", "1")) 123 | item = self.tableWidget.horizontalHeaderItem(1) 124 | item.setText(_translate("dept_detail", "2")) 125 | item = self.tableWidget.horizontalHeaderItem(2) 126 | item.setText(_translate("dept_detail", "3")) 127 | __sortingEnabled = self.tableWidget.isSortingEnabled() 128 | self.tableWidget.setSortingEnabled(False) 129 | item = self.tableWidget.item(0, 0) 130 | item.setText(_translate("dept_detail", "工号")) 131 | item = self.tableWidget.item(0, 1) 132 | item.setText(_translate("dept_detail", "姓名")) 133 | item = self.tableWidget.item(0, 2) 134 | item.setText(_translate("dept_detail", "详细信息")) 135 | self.tableWidget.setSortingEnabled(__sortingEnabled) 136 | self.lineEdit_3.setText(_translate("dept_detail", "该部门所有员工表")) 137 | self.label_3.setText(_translate("dept_detail", "该部门员工总数:")) 138 | 139 | import img_rc 140 | -------------------------------------------------------------------------------- /find_dept.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'find_dept.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_find_dept(object): 12 | def setupUi(self, find_dept): 13 | find_dept.setObjectName("find_dept") 14 | find_dept.resize(917, 571) 15 | find_dept.setStyleSheet("background-color:#f4f9f4;") 16 | self.pushButton = QtWidgets.QPushButton(find_dept) 17 | self.pushButton.setGeometry(QtCore.QRect(720, 100, 31, 31)) 18 | self.pushButton.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 19 | self.pushButton.setStyleSheet("border-image: url(:/newPrefix/images/search2.png);") 20 | self.pushButton.setText("") 21 | self.pushButton.setObjectName("pushButton") 22 | self.tableWidget = QtWidgets.QTableWidget(find_dept) 23 | self.tableWidget.setGeometry(QtCore.QRect(140, 160, 611, 331)) 24 | self.tableWidget.setStyleSheet("border:outset;") 25 | self.tableWidget.setObjectName("tableWidget") 26 | self.tableWidget.setColumnCount(3) 27 | self.tableWidget.setRowCount(1) 28 | item = QtWidgets.QTableWidgetItem() 29 | self.tableWidget.setVerticalHeaderItem(0, item) 30 | item = QtWidgets.QTableWidgetItem() 31 | item.setTextAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignVCenter) 32 | self.tableWidget.setHorizontalHeaderItem(0, item) 33 | item = QtWidgets.QTableWidgetItem() 34 | self.tableWidget.setHorizontalHeaderItem(1, item) 35 | item = QtWidgets.QTableWidgetItem() 36 | self.tableWidget.setHorizontalHeaderItem(2, item) 37 | item = QtWidgets.QTableWidgetItem() 38 | item.setTextAlignment(QtCore.Qt.AlignCenter) 39 | self.tableWidget.setItem(0, 0, item) 40 | item = QtWidgets.QTableWidgetItem() 41 | item.setTextAlignment(QtCore.Qt.AlignCenter) 42 | self.tableWidget.setItem(0, 1, item) 43 | item = QtWidgets.QTableWidgetItem() 44 | item.setTextAlignment(QtCore.Qt.AlignCenter) 45 | self.tableWidget.setItem(0, 2, item) 46 | self.tableWidget.horizontalHeader().setVisible(False) 47 | self.tableWidget.horizontalHeader().setDefaultSectionSize(203) 48 | self.tableWidget.verticalHeader().setVisible(False) 49 | self.searchBox = QtWidgets.QLineEdit(find_dept) 50 | self.searchBox.setGeometry(QtCore.QRect(540, 100, 171, 31)) 51 | self.searchBox.setStyleSheet("background:transparent;\n" 52 | "border:1px solid black;\n" 53 | "border-radius:10px;") 54 | self.searchBox.setObjectName("searchBox") 55 | self.lineEdit = QtWidgets.QLineEdit(find_dept) 56 | self.lineEdit.setGeometry(QtCore.QRect(390, 40, 121, 21)) 57 | self.lineEdit.setStyleSheet("font: 14pt \"华文行楷\";\n" 58 | "color:rgb(80, 126, 59);\n" 59 | "background-color:transparent;\n" 60 | "border:outset;") 61 | self.lineEdit.setObjectName("lineEdit") 62 | 63 | self.retranslateUi(find_dept) 64 | self.pushButton.clicked.connect(find_dept.search) 65 | self.searchBox.textChanged['QString'].connect(find_dept.showall) 66 | QtCore.QMetaObject.connectSlotsByName(find_dept) 67 | 68 | def retranslateUi(self, find_dept): 69 | _translate = QtCore.QCoreApplication.translate 70 | find_dept.setWindowTitle(_translate("find_dept", "Form")) 71 | item = self.tableWidget.verticalHeaderItem(0) 72 | item.setText(_translate("find_dept", "1")) 73 | item = self.tableWidget.horizontalHeaderItem(0) 74 | item.setText(_translate("find_dept", "1")) 75 | item = self.tableWidget.horizontalHeaderItem(1) 76 | item.setText(_translate("find_dept", "2")) 77 | item = self.tableWidget.horizontalHeaderItem(2) 78 | item.setText(_translate("find_dept", "3")) 79 | __sortingEnabled = self.tableWidget.isSortingEnabled() 80 | self.tableWidget.setSortingEnabled(False) 81 | item = self.tableWidget.item(0, 0) 82 | item.setText(_translate("find_dept", "部门编号")) 83 | item = self.tableWidget.item(0, 1) 84 | item.setText(_translate("find_dept", "部门名称")) 85 | item = self.tableWidget.item(0, 2) 86 | item.setText(_translate("find_dept", "详细信息")) 87 | self.tableWidget.setSortingEnabled(__sortingEnabled) 88 | self.searchBox.setPlaceholderText(_translate("find_dept", "输入查找的部门编号")) 89 | self.lineEdit.setText(_translate("find_dept", "查询部门信息")) 90 | 91 | import img_rc 92 | -------------------------------------------------------------------------------- /find_staff.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'find_staff.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_find_staff(object): 12 | def setupUi(self, find_staff): 13 | find_staff.setObjectName("find_staff") 14 | find_staff.resize(917, 571) 15 | find_staff.setStyleSheet("background-color:#f4f9f4;") 16 | self.lineEdit = QtWidgets.QLineEdit(find_staff) 17 | self.lineEdit.setGeometry(QtCore.QRect(390, 40, 121, 21)) 18 | self.lineEdit.setStyleSheet("font: 14pt \"华文行楷\";\n" 19 | "color:rgb(80, 126, 59);\n" 20 | "background-color:transparent;\n" 21 | "border:outset;") 22 | self.lineEdit.setObjectName("lineEdit") 23 | self.searchBox = QtWidgets.QLineEdit(find_staff) 24 | self.searchBox.setGeometry(QtCore.QRect(530, 110, 171, 31)) 25 | self.searchBox.setStyleSheet("background:transparent;\n" 26 | "border:1px solid black;\n" 27 | "border-radius:10px;") 28 | self.searchBox.setObjectName("searchBox") 29 | self.tableWidget = QtWidgets.QTableWidget(find_staff) 30 | self.tableWidget.setGeometry(QtCore.QRect(140, 170, 611, 311)) 31 | self.tableWidget.setStyleSheet("border:outset;") 32 | self.tableWidget.setObjectName("tableWidget") 33 | self.tableWidget.setColumnCount(3) 34 | self.tableWidget.setRowCount(1) 35 | item = QtWidgets.QTableWidgetItem() 36 | self.tableWidget.setVerticalHeaderItem(0, item) 37 | item = QtWidgets.QTableWidgetItem() 38 | item.setTextAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignVCenter) 39 | self.tableWidget.setHorizontalHeaderItem(0, item) 40 | item = QtWidgets.QTableWidgetItem() 41 | self.tableWidget.setHorizontalHeaderItem(1, item) 42 | item = QtWidgets.QTableWidgetItem() 43 | self.tableWidget.setHorizontalHeaderItem(2, item) 44 | item = QtWidgets.QTableWidgetItem() 45 | item.setTextAlignment(QtCore.Qt.AlignCenter) 46 | self.tableWidget.setItem(0, 0, item) 47 | item = QtWidgets.QTableWidgetItem() 48 | item.setTextAlignment(QtCore.Qt.AlignCenter) 49 | self.tableWidget.setItem(0, 1, item) 50 | item = QtWidgets.QTableWidgetItem() 51 | item.setTextAlignment(QtCore.Qt.AlignCenter) 52 | self.tableWidget.setItem(0, 2, item) 53 | self.tableWidget.horizontalHeader().setVisible(False) 54 | self.tableWidget.horizontalHeader().setDefaultSectionSize(203) 55 | self.tableWidget.verticalHeader().setVisible(False) 56 | self.pushButton = QtWidgets.QPushButton(find_staff) 57 | self.pushButton.setGeometry(QtCore.QRect(710, 110, 31, 31)) 58 | self.pushButton.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 59 | self.pushButton.setStyleSheet("border-image: url(:/newPrefix/images/search2.png);") 60 | self.pushButton.setText("") 61 | self.pushButton.setObjectName("pushButton") 62 | 63 | self.retranslateUi(find_staff) 64 | self.pushButton.clicked.connect(find_staff.search) 65 | self.searchBox.textChanged['QString'].connect(find_staff.showall) 66 | QtCore.QMetaObject.connectSlotsByName(find_staff) 67 | 68 | def retranslateUi(self, find_staff): 69 | _translate = QtCore.QCoreApplication.translate 70 | find_staff.setWindowTitle(_translate("find_staff", "Form")) 71 | self.lineEdit.setText(_translate("find_staff", "查询员工信息")) 72 | self.searchBox.setPlaceholderText(_translate("find_staff", "输入查找的工号")) 73 | item = self.tableWidget.verticalHeaderItem(0) 74 | item.setText(_translate("find_staff", "1")) 75 | item = self.tableWidget.horizontalHeaderItem(0) 76 | item.setText(_translate("find_staff", "1")) 77 | item = self.tableWidget.horizontalHeaderItem(1) 78 | item.setText(_translate("find_staff", "2")) 79 | item = self.tableWidget.horizontalHeaderItem(2) 80 | item.setText(_translate("find_staff", "3")) 81 | __sortingEnabled = self.tableWidget.isSortingEnabled() 82 | self.tableWidget.setSortingEnabled(False) 83 | item = self.tableWidget.item(0, 0) 84 | item.setText(_translate("find_staff", "工号")) 85 | item = self.tableWidget.item(0, 1) 86 | item.setText(_translate("find_staff", "姓名")) 87 | item = self.tableWidget.item(0, 2) 88 | item.setText(_translate("find_staff", "查看")) 89 | self.tableWidget.setSortingEnabled(__sortingEnabled) 90 | 91 | import img_rc 92 | -------------------------------------------------------------------------------- /finde_dept.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'finde_dept.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_find_dept(object): 12 | def setupUi(self, find_dept): 13 | find_dept.setObjectName("find_dept") 14 | find_dept.resize(715, 646) 15 | find_dept.setStyleSheet("background-color:#f4f9f4;") 16 | self.pushButton = QtWidgets.QPushButton(find_dept) 17 | self.pushButton.setGeometry(QtCore.QRect(620, 100, 31, 31)) 18 | self.pushButton.setStyleSheet("border-image: url(:/newPrefix/images/search2.png);") 19 | self.pushButton.setText("") 20 | self.pushButton.setObjectName("pushButton") 21 | self.tableWidget = QtWidgets.QTableWidget(find_dept) 22 | self.tableWidget.setGeometry(QtCore.QRect(50, 160, 611, 201)) 23 | self.tableWidget.setStyleSheet("border:outset;") 24 | self.tableWidget.setObjectName("tableWidget") 25 | self.tableWidget.setColumnCount(3) 26 | self.tableWidget.setRowCount(1) 27 | item = QtWidgets.QTableWidgetItem() 28 | self.tableWidget.setVerticalHeaderItem(0, item) 29 | item = QtWidgets.QTableWidgetItem() 30 | item.setTextAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignVCenter) 31 | self.tableWidget.setHorizontalHeaderItem(0, item) 32 | item = QtWidgets.QTableWidgetItem() 33 | self.tableWidget.setHorizontalHeaderItem(1, item) 34 | item = QtWidgets.QTableWidgetItem() 35 | self.tableWidget.setHorizontalHeaderItem(2, item) 36 | item = QtWidgets.QTableWidgetItem() 37 | item.setTextAlignment(QtCore.Qt.AlignCenter) 38 | self.tableWidget.setItem(0, 0, item) 39 | item = QtWidgets.QTableWidgetItem() 40 | item.setTextAlignment(QtCore.Qt.AlignCenter) 41 | self.tableWidget.setItem(0, 1, item) 42 | item = QtWidgets.QTableWidgetItem() 43 | item.setTextAlignment(QtCore.Qt.AlignCenter) 44 | self.tableWidget.setItem(0, 2, item) 45 | self.tableWidget.horizontalHeader().setVisible(False) 46 | self.tableWidget.horizontalHeader().setDefaultSectionSize(203) 47 | self.tableWidget.verticalHeader().setVisible(False) 48 | self.searchBox = QtWidgets.QLineEdit(find_dept) 49 | self.searchBox.setGeometry(QtCore.QRect(440, 100, 171, 31)) 50 | self.searchBox.setStyleSheet("background:transparent;\n" 51 | "border:1px solid black;\n" 52 | "border-radius:10px;") 53 | self.searchBox.setObjectName("searchBox") 54 | self.lineEdit = QtWidgets.QLineEdit(find_dept) 55 | self.lineEdit.setGeometry(QtCore.QRect(300, 40, 121, 21)) 56 | self.lineEdit.setStyleSheet("font: 14pt \"华文行楷\";\n" 57 | "color:rgb(80, 126, 59);\n" 58 | "background-color:transparent;\n" 59 | "border:outset;") 60 | self.lineEdit.setObjectName("lineEdit") 61 | 62 | self.retranslateUi(find_dept) 63 | self.pushButton.clicked.connect(find_dept.search) 64 | self.searchBox.textChanged['QString'].connect(find_dept.showall) 65 | QtCore.QMetaObject.connectSlotsByName(find_dept) 66 | 67 | def retranslateUi(self, find_dept): 68 | _translate = QtCore.QCoreApplication.translate 69 | find_dept.setWindowTitle(_translate("find_dept", "Form")) 70 | item = self.tableWidget.verticalHeaderItem(0) 71 | item.setText(_translate("find_dept", "1")) 72 | item = self.tableWidget.horizontalHeaderItem(0) 73 | item.setText(_translate("find_dept", "1")) 74 | item = self.tableWidget.horizontalHeaderItem(1) 75 | item.setText(_translate("find_dept", "2")) 76 | item = self.tableWidget.horizontalHeaderItem(2) 77 | item.setText(_translate("find_dept", "3")) 78 | __sortingEnabled = self.tableWidget.isSortingEnabled() 79 | self.tableWidget.setSortingEnabled(False) 80 | item = self.tableWidget.item(0, 0) 81 | item.setText(_translate("find_dept", "部门编号")) 82 | item = self.tableWidget.item(0, 1) 83 | item.setText(_translate("find_dept", "部门名称")) 84 | item = self.tableWidget.item(0, 2) 85 | item.setText(_translate("find_dept", "详细信息")) 86 | self.tableWidget.setSortingEnabled(__sortingEnabled) 87 | self.searchBox.setPlaceholderText(_translate("find_dept", "输入查找的部门编号")) 88 | self.lineEdit.setText(_translate("find_dept", "查询部门信息")) 89 | 90 | import img_rc 91 | -------------------------------------------------------------------------------- /images/admin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Echoyy9/Personnel-Management-System/146447abaa01ab9b3f2f19968e942f0d61f931d0/images/admin.png -------------------------------------------------------------------------------- /images/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Echoyy9/Personnel-Management-System/146447abaa01ab9b3f2f19968e942f0d61f931d0/images/back.png -------------------------------------------------------------------------------- /images/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Echoyy9/Personnel-Management-System/146447abaa01ab9b3f2f19968e942f0d61f931d0/images/file.png -------------------------------------------------------------------------------- /images/paper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Echoyy9/Personnel-Management-System/146447abaa01ab9b3f2f19968e942f0d61f931d0/images/paper.png -------------------------------------------------------------------------------- /images/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Echoyy9/Personnel-Management-System/146447abaa01ab9b3f2f19968e942f0d61f931d0/images/search.png -------------------------------------------------------------------------------- /images/search2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Echoyy9/Personnel-Management-System/146447abaa01ab9b3f2f19968e942f0d61f931d0/images/search2.png -------------------------------------------------------------------------------- /images/welcome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Echoyy9/Personnel-Management-System/146447abaa01ab9b3f2f19968e942f0d61f931d0/images/welcome.png -------------------------------------------------------------------------------- /login.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'login.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_login(object): 12 | def setupUi(self, login): 13 | login.setObjectName("login") 14 | login.resize(400, 300) 15 | icon = QtGui.QIcon() 16 | icon.addPixmap(QtGui.QPixmap(":/newPrefix/images/admin.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 17 | login.setWindowIcon(icon) 18 | login.setStyleSheet("background-color:#f4f9f4;") 19 | self.label1 = QtWidgets.QLabel(login) 20 | self.label1.setGeometry(QtCore.QRect(120, 60, 131, 31)) 21 | self.label1.setStyleSheet("border:1px groove rgb(172,172,172);\n" 22 | "background-color:transparent;") 23 | self.label1.setText("") 24 | self.label1.setObjectName("label1") 25 | self.sno = QtWidgets.QLineEdit(login) 26 | self.sno.setGeometry(QtCore.QRect(140, 60, 91, 31)) 27 | self.sno.setStyleSheet("background-color:transparent;\n" 28 | "border-style:outset;") 29 | self.sno.setObjectName("sno") 30 | self.label_2 = QtWidgets.QLabel(login) 31 | self.label_2.setGeometry(QtCore.QRect(120, 120, 131, 31)) 32 | self.label_2.setStyleSheet("border:1px groove rgb(172,172,172);\n" 33 | "background-color:transparent;") 34 | self.label_2.setText("") 35 | self.label_2.setObjectName("label_2") 36 | self.pwd = QtWidgets.QLineEdit(login) 37 | self.pwd.setGeometry(QtCore.QRect(140, 120, 91, 31)) 38 | self.pwd.setStyleSheet("background-color:transparent;\n" 39 | "border-style:outset;") 40 | self.pwd.setEchoMode(QtWidgets.QLineEdit.Password) 41 | self.pwd.setObjectName("pwd") 42 | self.btn = QtWidgets.QPushButton(login) 43 | self.btn.setGeometry(QtCore.QRect(150, 200, 75, 23)) 44 | self.btn.setStyleSheet("font:75 10pt \"黑体\";\n" 45 | "color:white;\n" 46 | "background-color:rgb(85,170,127);\n" 47 | "border-radius:3px;") 48 | self.btn.setCheckable(True) 49 | self.btn.setObjectName("btn") 50 | 51 | self.retranslateUi(login) 52 | self.btn.clicked.connect(login.jump) 53 | QtCore.QMetaObject.connectSlotsByName(login) 54 | 55 | def retranslateUi(self, login): 56 | _translate = QtCore.QCoreApplication.translate 57 | login.setWindowTitle(_translate("login", "人事管理系统")) 58 | self.sno.setPlaceholderText(_translate("login", "请输入您的工号")) 59 | self.pwd.setPlaceholderText(_translate("login", "请输入您的密码")) 60 | self.btn.setText(_translate("login", "登陆")) 61 | 62 | import img_rc 63 | -------------------------------------------------------------------------------- /login_form.py: -------------------------------------------------------------------------------- 1 | import sys 2 | from PyQt5 import QtWidgets 3 | from PyQt5.QtWidgets import QPushButton 4 | from login import Ui_form 5 | from testbtn import Ui_Form 6 | from logintest import Ui_Dialog2 7 | #登陆页面 8 | 9 | class login_form(QtWidgets.QWidget,Ui_form): 10 | def __init__(self): 11 | super(login_form, self).__init__() 12 | self.setupUi(self) 13 | 14 | def jump(self): 15 | self.close() 16 | self.m2 = jump_test() 17 | self.m2.exec_() 18 | 19 | ''' 20 | class btn_test(QtWidgets.QWidget,Ui_Form): 21 | def __init__(self): 22 | super(btn_test, self).__init__() 23 | self.setupUi(self) 24 | 25 | def jump(self): 26 | self.close() 27 | self.m2 = jump_test() 28 | self.m2.exec_() 29 | ''' 30 | 31 | 32 | #跳转页面 33 | class jump_test(QtWidgets.QDialog,Ui_Dialog2): 34 | def __init__(self): 35 | super(jump_test, self).__init__() 36 | self.setupUi(self) 37 | 38 | if __name__ == '__main__': 39 | app = QtWidgets.QApplication(sys.argv) 40 | my_login_form = login_form() 41 | #my_login_form.pushButton.click() 42 | #显示登陆页面 43 | my_login_form.show() 44 | sys.exit(app.exec_()) -------------------------------------------------------------------------------- /logintest.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'logintest.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_Dialog2(object): 12 | def setupUi(self, Dialog): 13 | Dialog.setObjectName("Dialog") 14 | Dialog.resize(400, 298) 15 | self.textEdit = QtWidgets.QTextEdit(Dialog) 16 | self.textEdit.setGeometry(QtCore.QRect(120, 60, 151, 71)) 17 | self.textEdit.setObjectName("textEdit") 18 | 19 | self.retranslateUi(Dialog) 20 | QtCore.QMetaObject.connectSlotsByName(Dialog) 21 | 22 | def retranslateUi(self, Dialog): 23 | _translate = QtCore.QCoreApplication.translate 24 | Dialog.setWindowTitle(_translate("Dialog", "Dialog")) 25 | self.textEdit.setHtml(_translate("Dialog", "\n" 26 | "\n" 29 | "

跳转页面

")) 30 | 31 | -------------------------------------------------------------------------------- /mainWindow.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'mainWindow.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_MainWindow(object): 12 | def setupUi(self, MainWindow): 13 | MainWindow.setObjectName("MainWindow") 14 | MainWindow.resize(1086, 568) 15 | icon = QtGui.QIcon() 16 | icon.addPixmap(QtGui.QPixmap(":/newPrefix/images/admin.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 17 | MainWindow.setWindowIcon(icon) 18 | self.centralwidget = QtWidgets.QWidget(MainWindow) 19 | self.centralwidget.setObjectName("centralwidget") 20 | self.splitter = QtWidgets.QSplitter(self.centralwidget) 21 | self.splitter.setGeometry(QtCore.QRect(0, 0, 1100, 571)) 22 | self.splitter.setMaximumSize(QtCore.QSize(16777215, 571)) 23 | self.splitter.setOrientation(QtCore.Qt.Horizontal) 24 | self.splitter.setObjectName("splitter") 25 | self.treeWidget = QtWidgets.QTreeWidget(self.splitter) 26 | self.treeWidget.setMinimumSize(QtCore.QSize(178, 0)) 27 | self.treeWidget.setMaximumSize(QtCore.QSize(178, 571)) 28 | self.treeWidget.setStyleSheet("background-color:#eeeeee;\n" 29 | "border:outset;\n" 30 | "color:#215b63;") 31 | self.treeWidget.setAutoScroll(True) 32 | self.treeWidget.setEditTriggers(QtWidgets.QAbstractItemView.DoubleClicked|QtWidgets.QAbstractItemView.EditKeyPressed) 33 | self.treeWidget.setTextElideMode(QtCore.Qt.ElideMiddle) 34 | self.treeWidget.setIndentation(25) 35 | self.treeWidget.setRootIsDecorated(True) 36 | self.treeWidget.setUniformRowHeights(False) 37 | self.treeWidget.setItemsExpandable(True) 38 | self.treeWidget.setAnimated(False) 39 | self.treeWidget.setHeaderHidden(True) 40 | self.treeWidget.setExpandsOnDoubleClick(True) 41 | self.treeWidget.setObjectName("treeWidget") 42 | self.treeWidget.headerItem().setIcon(0, icon) 43 | item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget) 44 | icon1 = QtGui.QIcon() 45 | icon1.addPixmap(QtGui.QPixmap(":/newPrefix/images/file.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 46 | item_0.setIcon(0, icon1) 47 | item_0.setFlags(QtCore.Qt.ItemIsEnabled) 48 | item_1 = QtWidgets.QTreeWidgetItem(item_0) 49 | icon2 = QtGui.QIcon() 50 | icon2.addPixmap(QtGui.QPixmap(":/newPrefix/images/paper.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 51 | item_1.setIcon(0, icon2) 52 | item_1 = QtWidgets.QTreeWidgetItem(item_0) 53 | brush = QtGui.QBrush(QtGui.QColor(0, 0, 0)) 54 | brush.setStyle(QtCore.Qt.NoBrush) 55 | item_1.setBackground(0, brush) 56 | item_1.setIcon(0, icon2) 57 | item_1 = QtWidgets.QTreeWidgetItem(item_0) 58 | item_1.setIcon(0, icon2) 59 | item_1 = QtWidgets.QTreeWidgetItem(item_0) 60 | item_1.setIcon(0, icon2) 61 | item_1 = QtWidgets.QTreeWidgetItem(item_0) 62 | item_1.setIcon(0, icon2) 63 | item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget) 64 | item_0.setIcon(0, icon1) 65 | item_1 = QtWidgets.QTreeWidgetItem(item_0) 66 | item_1.setIcon(0, icon2) 67 | item_1 = QtWidgets.QTreeWidgetItem(item_0) 68 | item_1.setIcon(0, icon2) 69 | item_1 = QtWidgets.QTreeWidgetItem(item_0) 70 | item_1.setIcon(0, icon2) 71 | item_1 = QtWidgets.QTreeWidgetItem(item_0) 72 | item_1.setIcon(0, icon2) 73 | item_1 = QtWidgets.QTreeWidgetItem(item_0) 74 | item_1.setIcon(0, icon2) 75 | item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget) 76 | item_0.setIcon(0, icon1) 77 | item_1 = QtWidgets.QTreeWidgetItem(item_0) 78 | item_1.setIcon(0, icon2) 79 | item_1 = QtWidgets.QTreeWidgetItem(item_0) 80 | item_1.setIcon(0, icon2) 81 | item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget) 82 | item_0.setIcon(0, icon1) 83 | item_1 = QtWidgets.QTreeWidgetItem(item_0) 84 | item_1.setIcon(0, icon2) 85 | item_1 = QtWidgets.QTreeWidgetItem(item_0) 86 | item_1.setIcon(0, icon2) 87 | item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget) 88 | item_0.setIcon(0, icon1) 89 | item_1 = QtWidgets.QTreeWidgetItem(item_0) 90 | item_1.setIcon(0, icon2) 91 | item_1 = QtWidgets.QTreeWidgetItem(item_0) 92 | item_1.setIcon(0, icon2) 93 | self.treeWidget.header().setVisible(False) 94 | self.treeWidget.header().setDefaultSectionSize(91) 95 | self.content = QtWidgets.QWidget(self.splitter) 96 | self.content.setEnabled(True) 97 | self.content.setStyleSheet("background-color:#f4f9f4;\n" 98 | "") 99 | self.content.setObjectName("content") 100 | self.label2 = QtWidgets.QLabel(self.content) 101 | self.label2.setGeometry(QtCore.QRect(290, 110, 301, 191)) 102 | self.label2.setStyleSheet("border-image: url(:/newPrefix/images/welcome.png);") 103 | self.label2.setText("") 104 | self.label2.setObjectName("label2") 105 | self.label1 = QtWidgets.QLabel(self.content) 106 | self.label1.setGeometry(QtCore.QRect(330, 310, 221, 31)) 107 | self.label1.setStyleSheet("font: 16pt \"隶书\";\n" 108 | "color:#6ba083;") 109 | self.label1.setObjectName("label1") 110 | MainWindow.setCentralWidget(self.centralwidget) 111 | 112 | self.retranslateUi(MainWindow) 113 | self.treeWidget.itemClicked['QTreeWidgetItem*','int'].connect(MainWindow.test) 114 | QtCore.QMetaObject.connectSlotsByName(MainWindow) 115 | 116 | def retranslateUi(self, MainWindow): 117 | _translate = QtCore.QCoreApplication.translate 118 | MainWindow.setWindowTitle(_translate("MainWindow", "人事管理系统")) 119 | self.treeWidget.headerItem().setText(0, _translate("MainWindow", "人事管理系统")) 120 | __sortingEnabled = self.treeWidget.isSortingEnabled() 121 | self.treeWidget.setSortingEnabled(False) 122 | self.treeWidget.topLevelItem(0).setText(0, _translate("MainWindow", "员工管理")) 123 | self.treeWidget.topLevelItem(0).child(0).setText(0, _translate("MainWindow", "添加员工信息")) 124 | self.treeWidget.topLevelItem(0).child(1).setText(0, _translate("MainWindow", "修改员工信息")) 125 | self.treeWidget.topLevelItem(0).child(2).setText(0, _translate("MainWindow", "删除员工信息")) 126 | self.treeWidget.topLevelItem(0).child(3).setText(0, _translate("MainWindow", "查询员工信息")) 127 | self.treeWidget.topLevelItem(0).child(4).setText(0, _translate("MainWindow", "管理权限控制")) 128 | self.treeWidget.topLevelItem(1).setText(0, _translate("MainWindow", "部门管理")) 129 | self.treeWidget.topLevelItem(1).child(0).setText(0, _translate("MainWindow", "添加部门信息")) 130 | self.treeWidget.topLevelItem(1).child(1).setText(0, _translate("MainWindow", "修改部门信息")) 131 | self.treeWidget.topLevelItem(1).child(2).setText(0, _translate("MainWindow", "删除部门信息")) 132 | self.treeWidget.topLevelItem(1).child(3).setText(0, _translate("MainWindow", "查询部门信息")) 133 | self.treeWidget.topLevelItem(1).child(4).setText(0, _translate("MainWindow", "职位信息管理")) 134 | self.treeWidget.topLevelItem(2).setText(0, _translate("MainWindow", "薪资管理")) 135 | self.treeWidget.topLevelItem(2).child(0).setText(0, _translate("MainWindow", "薪资历史查询")) 136 | self.treeWidget.topLevelItem(2).child(1).setText(0, _translate("MainWindow", "薪资分配管理")) 137 | self.treeWidget.topLevelItem(3).setText(0, _translate("MainWindow", "人事管理")) 138 | self.treeWidget.topLevelItem(3).child(0).setText(0, _translate("MainWindow", "调动历史查询")) 139 | self.treeWidget.topLevelItem(3).child(1).setText(0, _translate("MainWindow", "人员调动")) 140 | self.treeWidget.topLevelItem(4).setText(0, _translate("MainWindow", "考核管理")) 141 | self.treeWidget.topLevelItem(4).child(0).setText(0, _translate("MainWindow", "人员考核")) 142 | self.treeWidget.topLevelItem(4).child(1).setText(0, _translate("MainWindow", "考核历史查询")) 143 | self.treeWidget.setSortingEnabled(__sortingEnabled) 144 | self.label1.setText(_translate("MainWindow", "欢迎使用人事管理系统")) 145 | 146 | import img_rc 147 | -------------------------------------------------------------------------------- /maintest.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'maintest.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_MainWindow(object): 12 | def setupUi(self, MainWindow): 13 | MainWindow.setObjectName("MainWindow") 14 | MainWindow.resize(800, 600) 15 | self.centralwidget = QtWidgets.QWidget(MainWindow) 16 | self.centralwidget.setObjectName("centralwidget") 17 | self.stackedWidget = QtWidgets.QStackedWidget(self.centralwidget) 18 | self.stackedWidget.setGeometry(QtCore.QRect(0, 0, 811, 541)) 19 | self.stackedWidget.setObjectName("stackedWidget") 20 | self.page = QtWidgets.QWidget() 21 | self.page.setObjectName("page") 22 | self.stackedWidget.addWidget(self.page) 23 | self.page_2 = QtWidgets.QWidget() 24 | self.page_2.setObjectName("page_2") 25 | self.stackedWidget.addWidget(self.page_2) 26 | MainWindow.setCentralWidget(self.centralwidget) 27 | self.menubar = QtWidgets.QMenuBar(MainWindow) 28 | self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 23)) 29 | self.menubar.setObjectName("menubar") 30 | MainWindow.setMenuBar(self.menubar) 31 | self.statusbar = QtWidgets.QStatusBar(MainWindow) 32 | self.statusbar.setObjectName("statusbar") 33 | MainWindow.setStatusBar(self.statusbar) 34 | 35 | self.retranslateUi(MainWindow) 36 | QtCore.QMetaObject.connectSlotsByName(MainWindow) 37 | 38 | def retranslateUi(self, MainWindow): 39 | _translate = QtCore.QCoreApplication.translate 40 | MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) 41 | 42 | -------------------------------------------------------------------------------- /personalHistory.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'personalTable1.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.9 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | #人员调动历史界面 10 | 11 | 12 | import sys 13 | from PyQt5 import QtCore, QtGui, QtWidgets 14 | import pymysql 15 | from personaldialog import changePersonelDialog 16 | 17 | class personnel_history(QtWidgets.QWidget): 18 | def __init__(self): 19 | super().__init__() 20 | self.setupUi(self) 21 | 22 | def setupUi(self, personal): 23 | 24 | personal.setObjectName("personal") 25 | personal.resize(910, 589) 26 | self.searchButton = QtWidgets.QPushButton(personal) 27 | self.searchButton.setGeometry(QtCore.QRect(640, 10, 91, 30)) 28 | self.searchButton.setObjectName("searchButton") 29 | self.comboBox = QtWidgets.QComboBox(personal) 30 | self.comboBox.setGeometry(QtCore.QRect(750, 10, 121, 30)) 31 | self.comboBox.setObjectName("comboBox") 32 | self.comboBox.addItem("") 33 | self.comboBox.addItem("") 34 | self.personalTable = QtWidgets.QTableWidget(personal) 35 | self.personalTable.setEditTriggers(QtWidgets.QTableWidget.NoEditTriggers) 36 | self.personalTable.setSelectionBehavior(QtWidgets.QTableWidget.SelectRows) 37 | self.personalTable.setGeometry(QtCore.QRect(5, 52, 870, 490)) 38 | self.personalTable.setLayoutDirection(QtCore.Qt.LeftToRight) 39 | self.personalTable.setAlternatingRowColors(True) 40 | self.personalTable.setShowGrid(True) 41 | self.personalTable.setWordWrap(False) 42 | self.personalTable.setCornerButtonEnabled(True) 43 | self.personalTable.setObjectName("personalTable") 44 | self.personalTable.setColumnCount(9) 45 | self.personalTable.setRowCount(10) 46 | item = QtWidgets.QTableWidgetItem() 47 | self.personalTable.setVerticalHeaderItem(0, item) 48 | item = QtWidgets.QTableWidgetItem() 49 | self.personalTable.setVerticalHeaderItem(1, item) 50 | item = QtWidgets.QTableWidgetItem() 51 | self.personalTable.setVerticalHeaderItem(2, item) 52 | item = QtWidgets.QTableWidgetItem() 53 | font = QtGui.QFont() 54 | font.setPointSize(10) 55 | item.setFont(font) 56 | self.personalTable.setHorizontalHeaderItem(0, item) 57 | item = QtWidgets.QTableWidgetItem() 58 | self.personalTable.setHorizontalHeaderItem(1, item) 59 | item = QtWidgets.QTableWidgetItem() 60 | self.personalTable.setHorizontalHeaderItem(2, item) 61 | item = QtWidgets.QTableWidgetItem() 62 | self.personalTable.setHorizontalHeaderItem(3, item) 63 | item = QtWidgets.QTableWidgetItem() 64 | self.personalTable.setHorizontalHeaderItem(4, item) 65 | item = QtWidgets.QTableWidgetItem() 66 | self.personalTable.setHorizontalHeaderItem(5, item) 67 | item = QtWidgets.QTableWidgetItem() 68 | self.personalTable.setHorizontalHeaderItem(6, item) 69 | item = QtWidgets.QTableWidgetItem() 70 | self.personalTable.setHorizontalHeaderItem(7, item) 71 | item = QtWidgets.QTableWidgetItem() 72 | self.personalTable.setHorizontalHeaderItem(8, item) 73 | 74 | self.personalTable.horizontalHeader().setSortIndicatorShown(False) 75 | self.personalTable.horizontalHeader().setStretchLastSection(True) 76 | self.personalTable.verticalHeader().setVisible(False) 77 | self.personalTable.verticalHeader().setCascadingSectionResizes(False) 78 | self.personalTable.verticalHeader().setSortIndicatorShown(False) 79 | self.personalTable.verticalHeader().setStretchLastSection(False) 80 | self.searchText = QtWidgets.QLineEdit(personal) 81 | self.searchText.setGeometry(QtCore.QRect(5, 10, 600,30)) 82 | self.searchText.setObjectName("searchText") 83 | 84 | self.retranslateUi(personal) 85 | self.readMysql() 86 | self.searchButton.clicked.connect(self.searchRecord) 87 | self.searchText.editingFinished.connect(self.searchRecord) 88 | self.personalTable.doubleClicked.connect(self.changePerson) 89 | 90 | #右键删除 91 | self.personalTable.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) 92 | self.personalTable.customContextMenuRequested[QtCore.QPoint].connect(self.MenuShow) 93 | #self.personalTable.itemClicked.connect(self.MenuShow) 94 | 95 | QtCore.QMetaObject.connectSlotsByName(personal) 96 | 97 | def retranslateUi(self, personal): 98 | _translate = QtCore.QCoreApplication.translate 99 | personal.setWindowTitle(_translate("personal", "Form")) 100 | self.searchButton.setText(_translate("personal", "查询")) 101 | self.comboBox.setItemText(0, _translate("personal", "按姓名查找")) 102 | self.comboBox.setItemText(1, _translate("personal", "按工号查找")) 103 | self.personalTable.setSortingEnabled(False) 104 | item = self.personalTable.verticalHeaderItem(1) 105 | item.setText(_translate("personal", "New Row")) 106 | item = self.personalTable.verticalHeaderItem(2) 107 | item.setText(_translate("personal", "New Row")) 108 | item = self.personalTable.horizontalHeaderItem(0) 109 | item.setText(_translate("personal", "编号")) 110 | item = self.personalTable.horizontalHeaderItem(1) 111 | item.setText(_translate("personal", "员工编号")) 112 | item = self.personalTable.horizontalHeaderItem(2) 113 | item.setText(_translate("personal", "姓名")) 114 | item = self.personalTable.horizontalHeaderItem(3) 115 | item.setText(_translate("personal", "性别")) 116 | item = self.personalTable.horizontalHeaderItem(4) 117 | item.setText(_translate("personal", "原部门")) 118 | item = self.personalTable.horizontalHeaderItem(5) 119 | item.setText(_translate("personal", "原职位")) 120 | item = self.personalTable.horizontalHeaderItem(6) 121 | item.setText(_translate("personal", "新部门")) 122 | item = self.personalTable.horizontalHeaderItem(7) 123 | item.setText(_translate("personal", "新职位")) 124 | item = self.personalTable.horizontalHeaderItem(8) 125 | item.setText(_translate("personal", "时间")) 126 | 127 | __sortingEnabled = self.personalTable.isSortingEnabled() 128 | self.personalTable.setSortingEnabled(False) 129 | 130 | self.personalTable.setSortingEnabled(__sortingEnabled) 131 | 132 | def readMysql(self): 133 | db = pymysql.connect("localhost","root", "123456",db="personnel_man") 134 | cur = db.cursor() 135 | 136 | sql = "select p.p_no,p.s_no,staff.s_name,staff.s_sex ,p.predept,p.prepost,p.aftdept,p.aftpost,p.p_date from personnel as p,staff where p.s_no = staff.s_no Order By p.p_date desc,(p.p_no+0) desc " 137 | cur.execute(sql) 138 | len = cur.fetchall().__len__() 139 | 140 | cur.execute(sql) 141 | self.personalTable.setRowCount(len) 142 | 143 | k=0 144 | for i in cur: 145 | w=0 146 | for j in i: 147 | newItem = QtWidgets.QTableWidgetItem(str(j)) 148 | self.personalTable.setItem(k,w,newItem) 149 | w += 1 150 | k+=1 151 | 152 | cur.close() 153 | db.close() 154 | 155 | # 点击查询 156 | def searchRecord(self): 157 | db = pymysql.connect("localhost", "root", "123456", db="personnel_man") 158 | cur = db.cursor() 159 | 160 | if (self.searchText.text() == ""): 161 | sql = "select p.p_no, p.s_no,staff.s_name,staff.s_sex,p.predept,p.prepost,p.aftdept,p.aftpost,p.p_date from personnel as p,staff "+\ 162 | "where p.s_no = staff.s_no Order By p.p_date desc,(p.p_no+0) desc " 163 | cur.execute(sql) 164 | len = cur.fetchall().__len__() 165 | 166 | cur.execute(sql) 167 | self.personalTable.setRowCount(len) 168 | 169 | k = 0 170 | for i in cur: 171 | w = 0 172 | for j in i: 173 | newItem = QtWidgets.QTableWidgetItem(str(j)) 174 | self.personalTable.setItem(k, w, newItem) 175 | w += 1 176 | k += 1 177 | return 178 | 179 | #输入框内容 180 | 181 | temp = self.searchText.text() 182 | 183 | s = '%'+temp+'%' 184 | 185 | # 分类查询 186 | conditionChoice = self.comboBox.currentText() 187 | 188 | if (conditionChoice == "按姓名查找"): 189 | sql = "select p.p_no,p.s_no,staff.s_name,staff.s_sex,p.predept,p.prepost,p.aftdept,p.aftpost,p.p_date from personnel as p,staff where p.s_no = staff.s_no and staff.s_name LIKE '%s' Order By p.p_date desc,(p.p_no+0) desc" % ( s) 190 | elif (conditionChoice == "按工号查找"): 191 | sql = "select p.p_no,p.s_no,staff.s_name,staff.s_sex,p.predept,p.prepost,p.aftdept,p.aftpost,p.p_date from personnel as p,staff where p.s_no = staff.s_no and staff.s_no LIKE '%s' Order By p.p_date desc,(p.p_no+0) desc " % (s) 192 | 193 | 194 | 195 | self.personalTable.clearContents() 196 | #清空表格 197 | 198 | #重新查找后生成表格 199 | cur.execute(sql) 200 | len = cur.fetchall().__len__() 201 | 202 | cur.execute(sql) 203 | self.personalTable.setRowCount(len) 204 | 205 | k=0 206 | for i in cur: 207 | w=0 208 | for j in i: 209 | newItem = QtWidgets.QTableWidgetItem(str(j)) 210 | self.personalTable.setItem(k,w,newItem) 211 | w += 1 212 | k+=1 213 | 214 | if (self.searchText.text() == ""): 215 | pass 216 | 217 | cur.close() 218 | db.close() 219 | 220 | def changePerson(self): 221 | _translate = QtCore.QCoreApplication.translate 222 | row = self.personalTable.currentRow() 223 | sno = self.personalTable.item(row,1).text() 224 | sname = self.personalTable.item(row,2).text() 225 | #获取当前部门 226 | 227 | db = pymysql.connect("localhost", "root", "123456", db="personnel_man") 228 | cur = db.cursor() 229 | 230 | sql = "select d.d_name,p.p_name from sp,department as d,professional as p where sp.s_no='%s' and sp.p_no = p.p_no and sp.d_no = d.d_no" % (sno) 231 | cur.execute(sql) 232 | result = cur.fetchone() 233 | 234 | predepartment = result[0] 235 | prepost = result[1] 236 | print("predepartment"+predepartment) 237 | print("prepost"+prepost) 238 | changeDialog = changePersonelDialog(self) 239 | 240 | 241 | #填入相应信息 242 | changeDialog.line_sname.setText(_translate("personalDialog", sname)) 243 | changeDialog.line_sno.setText(_translate("personalDialog", sno)) 244 | changeDialog.line_predepart.setText(_translate("personalDialog", predepartment)) 245 | changeDialog.line_prepost.setText(_translate("personalDialog", prepost)) 246 | 247 | changeDialog.show() 248 | changeDialog.exec_() 249 | 250 | def MenuShow(self): 251 | try: 252 | 253 | rightMenu = QtWidgets.QMenu(self.personalTable) 254 | removeAction = QtWidgets.QAction(u"删除", self,triggered=self.deleteItem) # triggered 为右键菜单点击后的激活事件。这里slef.close调用的是系统自带的关闭事件。 255 | rightMenu.addAction(removeAction) 256 | 257 | rightMenu.exec_(QtGui.QCursor.pos()) 258 | print(111) 259 | except Exception as e: 260 | print(e) 261 | 262 | def deleteItem(self): 263 | db = pymysql.connect("localhost", "root", "123456", db="personnel_man") 264 | cur = db.cursor() 265 | 266 | row = self.personalTable.currentRow() 267 | pno = self.personalTable.item(row,0).text() 268 | 269 | print(pno) 270 | 271 | reply = QtWidgets.QMessageBox.question(self, '提示框', 272 | "确定要删除这条数据吗?", QtWidgets.QMessageBox.Yes | 273 | QtWidgets.QMessageBox.No, QtWidgets.QMessageBox.No) 274 | 275 | if reply == QtWidgets.QMessageBox.Yes: 276 | #print("yes") 277 | sql = "delete from personnel where p_no = '%s'" %(pno) 278 | try: 279 | print(sql) 280 | cur.execute(sql) 281 | except Exception as e: 282 | print(e) 283 | 284 | self.personalTable.removeRow(row) 285 | 286 | db.commit() 287 | else: 288 | return 289 | 290 | if __name__ == "__main__": 291 | app = QtWidgets.QApplication(sys.argv) 292 | 293 | mainMindow = personnel_history() 294 | mainMindow.show() 295 | sys.exit(app.exec_()) 296 | -------------------------------------------------------------------------------- /personalNow.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'personalTable1.ui' # # Created by: PyQt5 UI code generator 5.9 # # WARNING! All changes made in this file will be lost! #人员调动界面 import sys from PyQt5 import QtCore, QtGui, QtWidgets import pymysql from personaldialog import changePersonelDialog class personnel_now(QtWidgets.QWidget): def __init__(self): super().__init__() self.setupUi(self) def setupUi(self, personal): personal.setObjectName("personal") personal.resize(910, 589) self.searchButton = QtWidgets.QPushButton(personal) self.searchButton.setGeometry(QtCore.QRect(640, 5, 91, 35)) self.searchButton.setObjectName("searchButton") self.comboBox = QtWidgets.QComboBox(personal) self.comboBox.setGeometry(QtCore.QRect(750, 5, 121, 34)) self.comboBox.setObjectName("comboBox") self.comboBox.addItem("") self.comboBox.addItem("") self.personalTable = QtWidgets.QTableWidget(personal) self.personalTable.setEditTriggers(QtWidgets.QTableWidget.NoEditTriggers) self.personalTable.setSelectionBehavior(QtWidgets.QTableWidget.SelectRows) self.personalTable.setGeometry(QtCore.QRect(5, 50, 870, 490)) self.personalTable.setLayoutDirection(QtCore.Qt.LeftToRight) self.personalTable.setAlternatingRowColors(True) self.personalTable.setShowGrid(True) self.personalTable.setWordWrap(False) self.personalTable.setCornerButtonEnabled(True) self.personalTable.setObjectName("personalTable") self.personalTable.setColumnCount(7) self.personalTable.setRowCount(10) item = QtWidgets.QTableWidgetItem() self.personalTable.setVerticalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() self.personalTable.setVerticalHeaderItem(1, item) item = QtWidgets.QTableWidgetItem() self.personalTable.setVerticalHeaderItem(2, item) item = QtWidgets.QTableWidgetItem() font = QtGui.QFont() font.setPointSize(10) item.setFont(font) self.personalTable.setHorizontalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() self.personalTable.setHorizontalHeaderItem(1, item) item = QtWidgets.QTableWidgetItem() self.personalTable.setHorizontalHeaderItem(2, item) item = QtWidgets.QTableWidgetItem() self.personalTable.setHorizontalHeaderItem(3, item) item = QtWidgets.QTableWidgetItem() self.personalTable.setHorizontalHeaderItem(4, item) item = QtWidgets.QTableWidgetItem() self.personalTable.setHorizontalHeaderItem(5, item) item = QtWidgets.QTableWidgetItem() self.personalTable.setHorizontalHeaderItem(6, item) self.personalTable.horizontalHeader().setSortIndicatorShown(False) self.personalTable.horizontalHeader().setStretchLastSection(True) self.personalTable.verticalHeader().setVisible(False) self.personalTable.verticalHeader().setCascadingSectionResizes(False) self.personalTable.verticalHeader().setSortIndicatorShown(False) self.personalTable.verticalHeader().setStretchLastSection(False) self.searchText = QtWidgets.QLineEdit(personal) self.searchText.setGeometry(QtCore.QRect(5, 5, 600, 35)) self.searchText.setObjectName("searchText") self.retranslateUi(personal) self.readMysql() self.searchButton.clicked.connect(self.searchRecord) self.searchText.editingFinished.connect(self.searchRecord) self.personalTable.doubleClicked.connect(self.changePerson) QtCore.QMetaObject.connectSlotsByName(personal) def retranslateUi(self, personal): _translate = QtCore.QCoreApplication.translate personal.setWindowTitle(_translate("personal", "Form")) self.searchButton.setText(_translate("personal", "查询")) self.comboBox.setItemText(0, _translate("personal", "按姓名查找")) self.comboBox.setItemText(1, _translate("personal", "按工号查找")) self.personalTable.setSortingEnabled(False) item = self.personalTable.verticalHeaderItem(1) item.setText(_translate("personal", "New Row")) item = self.personalTable.verticalHeaderItem(2) item.setText(_translate("personal", "New Row")) item = self.personalTable.horizontalHeaderItem(0) item.setText(_translate("personal", "员工编号")) item = self.personalTable.horizontalHeaderItem(1) item.setText(_translate("personal", "姓名")) item = self.personalTable.horizontalHeaderItem(2) item.setText(_translate("personal", "性别")) item = self.personalTable.horizontalHeaderItem(3) item.setText(_translate("personal", "电话")) item = self.personalTable.horizontalHeaderItem(4) item.setText(_translate("personal", "部门")) item = self.personalTable.horizontalHeaderItem(5) item.setText(_translate("personal", "职位")) item = self.personalTable.horizontalHeaderItem(6) item.setText(_translate("personal", "时间")) __sortingEnabled = self.personalTable.isSortingEnabled() self.personalTable.setSortingEnabled(False) self.personalTable.setSortingEnabled(__sortingEnabled) def readMysql(self): db = pymysql.connect("localhost", "root", "123456", db="personnel_man") cur = db.cursor() sql = "select sp.s_no,staff.s_name,staff.s_sex,staff.s_num,d.d_name,p.p_name,entry_time from sp,staff,department as d,professional as p"+\ " where sp.s_no = staff.s_no and sp.p_no = p.p_no and sp.d_no = d.d_no order by sp.entry_time desc" cur.execute(sql) len = cur.fetchall().__len__() cur.execute(sql) self.personalTable.setRowCount(len) k=0 for i in cur: w=0 for j in i: newItem = QtWidgets.QTableWidgetItem(str(j)) self.personalTable.setItem(k,w,newItem) w += 1 k+=1 cur.close() # 点击查询 def searchRecord(self): db = pymysql.connect("localhost", "root", "123456", db="personnel_man") cur = db.cursor() if (self.searchText.text() == ""): sql = "select sp.s_no,staff.s_name,staff.s_sex,staff.s_num,d.d_name,p.p_name,entry_time from sp,staff,department as d,professional as p" + \ " where sp.s_no = staff.s_no and sp.p_no = p.p_no and sp.d_no = d.d_no order by sp.entry_time desc" cur.execute(sql) len = cur.fetchall().__len__() cur.execute(sql) self.personalTable.setRowCount(len) k = 0 for i in cur: w = 0 for j in i: newItem = QtWidgets.QTableWidgetItem(str(j)) self.personalTable.setItem(k, w, newItem) w += 1 k += 1 return #输入框内容 temp = self.searchText.text() s = '%'+temp+'%' # 分类查询 conditionChoice = self.comboBox.currentText() if (conditionChoice == "按姓名查找"): sql = "select sp.s_no,staff.s_name,staff.s_sex,staff.s_num,d.d_name,p.p_name,entry_time from sp,staff,department as d,professional as p" + \ " where sp.s_no = staff.s_no and sp.p_no = p.p_no and sp.d_no = d.d_no and staff.s_name LIKE '%s' order by sp.entry_time desc " % ( s) elif (conditionChoice == "按工号查找"): sql = "select sp.s_no,staff.s_name,staff.s_sex,staff.s_num,d.d_name,p.p_name,entry_time from sp,staff,department as d,professional as p" + \ " where sp.s_no = staff.s_no and sp.p_no = p.p_no and sp.d_no = d.d_no and staff.s_no LIKE '%s' order by sp.entry_time desc " % (s) print(sql) self.personalTable.clearContents() #清空表格 #重新查找后生成表格 cur.execute(sql) len = cur.fetchall().__len__() cur.execute(sql) self.personalTable.setRowCount(len) k=0 for i in cur: w=0 for j in i: newItem = QtWidgets.QTableWidgetItem(str(j)) self.personalTable.setItem(k,w,newItem) w += 1 k+=1 if (self.searchText.text() == ""): pass cur.close() db.close() def changePerson(self): _translate = QtCore.QCoreApplication.translate row = self.personalTable.currentRow() sno = self.personalTable.item(row,0).text() sname = self.personalTable.item(row,1).text() #获取当前部门 predepartment = self.personalTable.item(row,4).text() prepost = self.personalTable.item(row,5).text() print("predepartment"+predepartment) print("prepost"+prepost) changeDialog = changePersonelDialog(self) #填入相应信息 changeDialog.line_sname.setText(_translate("personalDialog", sname)) changeDialog.line_sno.setText(_translate("personalDialog", sno)) changeDialog.line_predepart.setText(_translate("personalDialog", predepartment)) changeDialog.line_prepost.setText(_translate("personalDialog", prepost)) changeDialog.add_info_success_signal.connect(self.readMysql) changeDialog.show() changeDialog.exec_() if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) mainMindow = personnel_now() mainMindow.show() sys.exit(app.exec_()) -------------------------------------------------------------------------------- /personalTest.py: -------------------------------------------------------------------------------- 1 | import sys from PyQt5 import QtCore, QtGui, QtWidgets from personalHistory import personnel_history class personalTest(QtWidgets.QWidget, personnel_history): def __init__(self): super(personalTest, self).__init__() self.setupUi(self) if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) my_app = personalTest() my_app.show() sys.exit(app.exec_()) -------------------------------------------------------------------------------- /personaldialog.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'personalDialog.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.9 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | #人员调动修改对话框 10 | 11 | from PyQt5 import QtCore, QtGui, QtWidgets 12 | import sys 13 | import pymysql 14 | import datetime 15 | 16 | class changePersonelDialog(QtWidgets.QDialog): 17 | add_info_success_signal = QtCore.pyqtSignal() 18 | 19 | def __init__(self, parent=None): 20 | super(changePersonelDialog, self).__init__(parent) 21 | self.setupUi(self) 22 | 23 | def setupUi(self, personalDialog): 24 | personalDialog.setObjectName("personalDialog") 25 | personalDialog.resize(400, 470) 26 | self.gridLayoutWidget = QtWidgets.QWidget(personalDialog) 27 | self.gridLayoutWidget.setGeometry(QtCore.QRect(20, 10, 350, 391)) 28 | self.gridLayoutWidget.setObjectName("gridLayoutWidget") 29 | self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget) 30 | self.gridLayout.setContentsMargins(0, 0, 0, 0) 31 | self.gridLayout.setObjectName("gridLayout") 32 | self.label_prepost = QtWidgets.QLabel(self.gridLayoutWidget) 33 | self.label_prepost.setScaledContents(False) 34 | self.label_prepost.setObjectName("label_prepost") 35 | self.gridLayout.addWidget(self.label_prepost, 3, 0, 1, 1) 36 | self.comboxdepart = QtWidgets.QComboBox(self.gridLayoutWidget) 37 | self.comboxdepart.setStyleSheet("font: 14pt \"Adobe Arabic\";") 38 | self.comboxdepart.setObjectName("comboxdepart") 39 | 40 | self.gridLayout.addWidget(self.comboxdepart, 4, 1, 1, 1) 41 | self.label_afterdepart = QtWidgets.QLabel(self.gridLayoutWidget) 42 | self.label_afterdepart.setScaledContents(False) 43 | self.label_afterdepart.setObjectName("label_afterdepart") 44 | self.gridLayout.addWidget(self.label_afterdepart, 4, 0, 1, 1) 45 | self.line_prepost = QtWidgets.QLineEdit(self.gridLayoutWidget) 46 | self.line_prepost.setStyleSheet("font: 14pt \"Adobe Arabic\";") 47 | self.line_prepost.setObjectName("line_prepost") 48 | self.gridLayout.addWidget(self.line_prepost, 3, 1, 1, 1) 49 | self.comboBoxProfession = QtWidgets.QComboBox(self.gridLayoutWidget) 50 | self.comboBoxProfession.setStyleSheet("font: 14pt \"Adobe Arabic\";") 51 | self.comboBoxProfession.setObjectName("comboBoxProfession") 52 | 53 | self.gridLayout.addWidget(self.comboBoxProfession, 5, 1, 1, 1) 54 | self.label_sno = QtWidgets.QLabel(self.gridLayoutWidget) 55 | self.label_sno.setScaledContents(False) 56 | self.label_sno.setObjectName("label_sno") 57 | self.gridLayout.addWidget(self.label_sno, 1, 0, 1, 1) 58 | self.line_sno = QtWidgets.QLineEdit(self.gridLayoutWidget) 59 | self.line_sno.setStyleSheet("font: 14pt \"Adobe Arabic\";") 60 | self.line_sno.setObjectName("line_sno") 61 | self.gridLayout.addWidget(self.line_sno, 1, 1, 1, 1) 62 | self.label_predepart = QtWidgets.QLabel(self.gridLayoutWidget) 63 | self.label_predepart.setScaledContents(False) 64 | self.label_predepart.setObjectName("label_predepart") 65 | self.gridLayout.addWidget(self.label_predepart, 2, 0, 1, 1) 66 | self.label_name = QtWidgets.QLabel(self.gridLayoutWidget) 67 | self.label_name.setScaledContents(False) 68 | self.label_name.setObjectName("label_name") 69 | self.gridLayout.addWidget(self.label_name, 0, 0, 1, 1) 70 | self.line_sname = QtWidgets.QLineEdit(self.gridLayoutWidget) 71 | self.line_sname.setEnabled(True) 72 | self.line_sname.setStyleSheet("font: 14pt \"Adobe Arabic\";") 73 | self.line_sname.setObjectName("line_sname") 74 | self.gridLayout.addWidget(self.line_sname, 0, 1, 1, 1) 75 | self.line_predepart = QtWidgets.QLineEdit(self.gridLayoutWidget) 76 | self.line_predepart.setStyleSheet("font: 14pt \"Adobe Arabic\";") 77 | self.line_predepart.setObjectName("line_predepart") 78 | self.gridLayout.addWidget(self.line_predepart, 2, 1, 1, 1) 79 | self.label_afterpost = QtWidgets.QLabel(self.gridLayoutWidget) 80 | self.label_afterpost.setScaledContents(False) 81 | self.label_afterpost.setObjectName("label_afterpost") 82 | self.gridLayout.addWidget(self.label_afterpost, 5, 0, 1, 1) 83 | self.button_ok = QtWidgets.QPushButton(personalDialog) 84 | self.button_ok.setGeometry(QtCore.QRect(100, 410, 221, 41)) 85 | self.button_ok.setStyleSheet("font: 14pt \"Adobe Arabic\";\n" 86 | "color:rgb(255, 0, 0);") 87 | self.button_ok.setObjectName("button_ok") 88 | 89 | 90 | self.line_sname.setFocusPolicy(False) 91 | self.line_sno.setFocusPolicy(False) 92 | self.line_prepost.setFocusPolicy(False) 93 | self.line_predepart.setFocusPolicy(False) 94 | 95 | self.retranslateUi(personalDialog) 96 | self.button_ok.clicked.connect(self.clickOk) 97 | 98 | QtCore.QMetaObject.connectSlotsByName(personalDialog) 99 | 100 | def retranslateUi(self, personalDialog): 101 | _translate = QtCore.QCoreApplication.translate 102 | personalDialog.setWindowTitle(_translate("personalDialog", "人员调动")) 103 | self.label_prepost.setText(_translate("personalDialog", "

原职位:

")) 104 | 105 | self.label_afterdepart.setText(_translate("personalDialog", "

调入部门:

")) 106 | self.line_prepost.setText(_translate("personalDialog", "453")) 107 | 108 | self.label_sno.setText(_translate("personalDialog", "

工号:

")) 109 | self.line_sno.setText(_translate("personalDialog", "20001")) 110 | self.label_predepart.setText(_translate("personalDialog", "

原部门:

")) 111 | self.label_name.setText(_translate("personalDialog", "

姓名:

")) 112 | self.line_sname.setText(_translate("personalDialog", "xxx")) 113 | self.line_predepart.setText(_translate("personalDialog", "53")) 114 | self.label_afterpost.setText(_translate("personalDialog", "

调入职位:

")) 115 | self.button_ok.setText(_translate("personalDialog", "保存修改")) 116 | self.initcombox() 117 | 118 | #下拉列表 119 | def initcombox(self): 120 | _translate = QtCore.QCoreApplication.translate 121 | db = pymysql.connect("localhost", "root", "123456", db="personnel_man") 122 | 123 | cur = db.cursor() 124 | sql = "SELECT d_name from department" 125 | cur.execute(sql) 126 | 127 | index = 0 128 | for i in cur: 129 | for j in i: 130 | print(str(j)) 131 | self.comboxdepart.insertItem(index,j) 132 | 133 | sql = "SELECT p_name from professional" 134 | cur.execute(sql) 135 | 136 | index = 0 137 | for i in cur: 138 | for j in i: 139 | self.comboBoxProfession.insertItem(index, j) 140 | 141 | 142 | #确定提交后 143 | def clickOk(self): 144 | 145 | reply = QtWidgets.QMessageBox.question(self, '提示框', 146 | "确定保存修改吗?", QtWidgets.QMessageBox.Yes | 147 | QtWidgets.QMessageBox.No, QtWidgets.QMessageBox.No) 148 | 149 | if reply == QtWidgets.QMessageBox.No: 150 | return 151 | 152 | #判断输入字段是否为空 153 | afterdepart = self.comboxdepart.currentText() 154 | afterpost = self.comboBoxProfession.currentText() 155 | 156 | print(afterdepart) 157 | print(afterpost) 158 | 159 | sno = self.line_sno.text() 160 | predepartt = self.line_predepart.text() 161 | prepost = self.line_prepost.text() 162 | db = pymysql.connect("localhost", "root", "123456", db="personnel_man") 163 | cur = db.cursor() 164 | 165 | p_date = datetime.datetime.now().strftime('%Y-%m-%d') 166 | 167 | 168 | cur.execute("select d_no from department where d_name = '%s' "%(afterdepart)) 169 | result = cur.fetchone() 170 | d_no = str(result[0]) 171 | 172 | cur.execute("select p_no from professional where p_name = '%s' " % (afterpost)) 173 | result = cur.fetchone() 174 | p_no = str(result[0]) 175 | 176 | #判断当前部门是否有经理 177 | sql = "select * from sp where d_no = '%s' and p_no='%s'"%(d_no,p_no) 178 | sta = cur.execute(sql) 179 | print(sta) 180 | 181 | #调整前是经理,或者调整后是经理,更改数据库 182 | if prepost == '经理': 183 | print(111111111111111111111,prepost) 184 | sql = "update department set s_no=NULL where d_no = '%s'" % (d_no) 185 | cur.execute(sql) 186 | db.commit() 187 | if afterpost == '经理': 188 | sql = "update department set s_no='%s' where d_no = '%s'" % (sno, d_no) 189 | cur.execute(sql) 190 | db.commit() 191 | if sta != 0: 192 | reply = QtWidgets.QMessageBox.question(self, '提示框', 193 | "%s已有经理,无法进行该操作" % (afterdepart), QtWidgets.QMessageBox.Yes) 194 | return 195 | 196 | #更新sp就职表 197 | sql = "update sp set d_no='%s',p_no = '%s',entry_time = '%s' where s_no = '%s'"%(d_no,p_no,p_date,sno) 198 | cur.execute(sql) 199 | db.commit() 200 | 201 | #更新人事调动表 202 | try: 203 | cur.execute("select p_no from personnel order by (p_no+0) desc ") 204 | len = cur.fetchone() 205 | if len == None: 206 | p_no = 1 207 | else: 208 | p_no = str(int(len[0])+1) 209 | 210 | except Exception as e: 211 | print(e) 212 | 213 | sql = "insert into personnel value ('%s','%s','%s','%s','%s','%s','%s')" % ( 214 | p_no, sno, predepartt, afterdepart, prepost, afterpost, p_date) 215 | sta = cur.execute(sql) 216 | if sta == 1: 217 | print("修改成功") 218 | else: 219 | print("false") 220 | db.commit() 221 | 222 | cur.close() 223 | db.close() 224 | self.add_info_success_signal.emit() 225 | self.close() 226 | return 227 | 228 | ''' 229 | def closeEvent(self, event): 230 | 231 | reply = QtWidgets.QMessageBox.question(self, '提示框', 232 | "确定不保存修改退出吗?", QtWidgets.QMessageBox.Yes | 233 | QtWidgets.QMessageBox.No, QtWidgets.QMessageBox.No) 234 | 235 | if reply == QtWidgets.QMessageBox.Yes: 236 | event.accept() 237 | else: 238 | event.ignore() 239 | ''' 240 | 241 | if __name__ == "__main__": 242 | app = QtWidgets.QApplication(sys.argv) 243 | mainMindow = changePersonelDialog() 244 | mainMindow.show() 245 | sys.exit(app.exec_()) -------------------------------------------------------------------------------- /profess.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'profess.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_profess(object): 12 | def setupUi(self, profess): 13 | profess.setObjectName("profess") 14 | profess.resize(917, 571) 15 | profess.setStyleSheet("background-color:#f4f9f4;") 16 | self.tableWidget = QtWidgets.QTableWidget(profess) 17 | self.tableWidget.setGeometry(QtCore.QRect(140, 120, 611, 351)) 18 | self.tableWidget.setStyleSheet("border:outset;") 19 | self.tableWidget.setObjectName("tableWidget") 20 | self.tableWidget.setColumnCount(2) 21 | self.tableWidget.setRowCount(1) 22 | item = QtWidgets.QTableWidgetItem() 23 | self.tableWidget.setVerticalHeaderItem(0, item) 24 | item = QtWidgets.QTableWidgetItem() 25 | item.setTextAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignVCenter) 26 | self.tableWidget.setHorizontalHeaderItem(0, item) 27 | item = QtWidgets.QTableWidgetItem() 28 | self.tableWidget.setHorizontalHeaderItem(1, item) 29 | item = QtWidgets.QTableWidgetItem() 30 | item.setTextAlignment(QtCore.Qt.AlignCenter) 31 | self.tableWidget.setItem(0, 0, item) 32 | item = QtWidgets.QTableWidgetItem() 33 | item.setTextAlignment(QtCore.Qt.AlignCenter) 34 | self.tableWidget.setItem(0, 1, item) 35 | self.tableWidget.horizontalHeader().setVisible(False) 36 | self.tableWidget.horizontalHeader().setDefaultSectionSize(305) 37 | self.tableWidget.verticalHeader().setVisible(False) 38 | self.lineEdit = QtWidgets.QLineEdit(profess) 39 | self.lineEdit.setGeometry(QtCore.QRect(390, 40, 121, 21)) 40 | self.lineEdit.setStyleSheet("font: 14pt \"华文行楷\";\n" 41 | "color:rgb(80, 126, 59);\n" 42 | "background-color:transparent;\n" 43 | "border:outset;") 44 | self.lineEdit.setObjectName("lineEdit") 45 | 46 | self.retranslateUi(profess) 47 | QtCore.QMetaObject.connectSlotsByName(profess) 48 | 49 | def retranslateUi(self, profess): 50 | _translate = QtCore.QCoreApplication.translate 51 | profess.setWindowTitle(_translate("profess", "Form")) 52 | item = self.tableWidget.verticalHeaderItem(0) 53 | item.setText(_translate("profess", "1")) 54 | item = self.tableWidget.horizontalHeaderItem(0) 55 | item.setText(_translate("profess", "1")) 56 | item = self.tableWidget.horizontalHeaderItem(1) 57 | item.setText(_translate("profess", "2")) 58 | __sortingEnabled = self.tableWidget.isSortingEnabled() 59 | self.tableWidget.setSortingEnabled(False) 60 | item = self.tableWidget.item(0, 0) 61 | item.setText(_translate("profess", "职位编号")) 62 | item = self.tableWidget.item(0, 1) 63 | item.setText(_translate("profess", "职位名称")) 64 | self.tableWidget.setSortingEnabled(__sortingEnabled) 65 | self.lineEdit.setText(_translate("profess", "职位信息")) 66 | 67 | -------------------------------------------------------------------------------- /pyqt_form.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'pyqt_form.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_Form(object): 12 | def setupUi(self, Form): 13 | Form.setObjectName("Form") 14 | Form.resize(400, 300) 15 | self.pushButton = QtWidgets.QPushButton(Form) 16 | self.pushButton.setGeometry(QtCore.QRect(50, 20, 75, 23)) 17 | self.pushButton.setObjectName("pushButton") 18 | self.textEdit = QtWidgets.QTextEdit(Form) 19 | self.textEdit.setGeometry(QtCore.QRect(50, 70, 256, 192)) 20 | self.textEdit.setObjectName("textEdit") 21 | 22 | self.retranslateUi(Form) 23 | self.pushButton.clicked.connect(Form.pushButton_click) 24 | QtCore.QMetaObject.connectSlotsByName(Form) 25 | 26 | def retranslateUi(self, Form): 27 | _translate = QtCore.QCoreApplication.translate 28 | Form.setWindowTitle(_translate("Form", "Form")) 29 | self.pushButton.setText(_translate("Form", "PushButton")) 30 | 31 | -------------------------------------------------------------------------------- /salaryDialog.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'personalDialog.ui' # # Created by: PyQt5 UI code generator 5.9 # # WARNING! All changes made in this file will be lost! #人员调动修改对话框 from PyQt5 import QtCore, QtGui, QtWidgets import sys import pymysql import datetime class salaryDialog(QtWidgets.QDialog): add_info_success_signal = QtCore.pyqtSignal() def __init__(self, parent=None): super(changePersonelDialog, self).__init__(parent) self.setupUi(self) def setupUi(self, personalDialog): personalDialog.setObjectName("personalDialog") personalDialog.resize(411, 497) self.gridLayoutWidget = QtWidgets.QWidget(personalDialog) self.gridLayoutWidget.setGeometry(QtCore.QRect(30, 30, 351, 391)) self.gridLayoutWidget.setObjectName("gridLayoutWidget") self.gridLayout = QtWidgets.QGridLayout(self.gridLayoutWidget) self.gridLayout.setContentsMargins(0, 0, 0, 0) self.gridLayout.setObjectName("gridLayout") self.label_prepost = QtWidgets.QLabel(self.gridLayoutWidget) self.label_prepost.setScaledContents(False) self.label_prepost.setObjectName("label_prepost") self.gridLayout.addWidget(self.label_prepost, 3, 0, 1, 1) self.comboxdepart = QtWidgets.QComboBox(self.gridLayoutWidget) self.comboxdepart.setStyleSheet("font: 14pt \"Adobe Arabic\";") self.comboxdepart.setObjectName("comboxdepart") self.gridLayout.addWidget(self.comboxdepart, 4, 1, 1, 1) self.label_afterdepart = QtWidgets.QLabel(self.gridLayoutWidget) self.label_afterdepart.setScaledContents(False) self.label_afterdepart.setObjectName("label_afterdepart") self.gridLayout.addWidget(self.label_afterdepart, 4, 0, 1, 1) self.line_prepost = QtWidgets.QLineEdit(self.gridLayoutWidget) self.line_prepost.setStyleSheet("font: 14pt \"Adobe Arabic\";") self.line_prepost.setObjectName("line_prepost") self.gridLayout.addWidget(self.line_prepost, 3, 1, 1, 1) self.comboBoxProfession = QtWidgets.QComboBox(self.gridLayoutWidget) self.comboBoxProfession.setStyleSheet("font: 14pt \"Adobe Arabic\";") self.comboBoxProfession.setObjectName("comboBoxProfession") self.gridLayout.addWidget(self.comboBoxProfession, 5, 1, 1, 1) self.label_sno = QtWidgets.QLabel(self.gridLayoutWidget) self.label_sno.setScaledContents(False) self.label_sno.setObjectName("label_sno") self.gridLayout.addWidget(self.label_sno, 1, 0, 1, 1) self.line_sno = QtWidgets.QLineEdit(self.gridLayoutWidget) self.line_sno.setStyleSheet("font: 14pt \"Adobe Arabic\";") self.line_sno.setObjectName("line_sno") self.gridLayout.addWidget(self.line_sno, 1, 1, 1, 1) self.label_predepart = QtWidgets.QLabel(self.gridLayoutWidget) self.label_predepart.setScaledContents(False) self.label_predepart.setObjectName("label_predepart") self.gridLayout.addWidget(self.label_predepart, 2, 0, 1, 1) self.label_name = QtWidgets.QLabel(self.gridLayoutWidget) self.label_name.setScaledContents(False) self.label_name.setObjectName("label_name") self.gridLayout.addWidget(self.label_name, 0, 0, 1, 1) self.line_sname = QtWidgets.QLineEdit(self.gridLayoutWidget) self.line_sname.setEnabled(True) self.line_sname.setStyleSheet("font: 14pt \"Adobe Arabic\";") self.line_sname.setObjectName("line_sname") self.gridLayout.addWidget(self.line_sname, 0, 1, 1, 1) self.line_predepart = QtWidgets.QLineEdit(self.gridLayoutWidget) self.line_predepart.setStyleSheet("font: 14pt \"Adobe Arabic\";") self.line_predepart.setObjectName("line_predepart") self.gridLayout.addWidget(self.line_predepart, 2, 1, 1, 1) self.label_afterpost = QtWidgets.QLabel(self.gridLayoutWidget) self.label_afterpost.setScaledContents(False) self.label_afterpost.setObjectName("label_afterpost") self.gridLayout.addWidget(self.label_afterpost, 5, 0, 1, 1) self.button_ok = QtWidgets.QPushButton(personalDialog) self.button_ok.setGeometry(QtCore.QRect(100, 440, 221, 41)) self.button_ok.setStyleSheet("font: 14pt \"Adobe Arabic\";\n" "color:rgb(255, 0, 0);") self.button_ok.setObjectName("button_ok") self.line_sname.setFocusPolicy(False) self.line_sno.setFocusPolicy(False) self.line_prepost.setFocusPolicy(False) self.line_predepart.setFocusPolicy(False) self.retranslateUi(personalDialog) self.button_ok.clicked.connect(self.clickOk) QtCore.QMetaObject.connectSlotsByName(personalDialog) def retranslateUi(self, personalDialog): _translate = QtCore.QCoreApplication.translate personalDialog.setWindowTitle(_translate("personalDialog", "人员调动")) self.label_prepost.setText(_translate("personalDialog", "

原职位:

")) self.label_afterdepart.setText(_translate("personalDialog", "

调入部门:

")) self.line_prepost.setText(_translate("personalDialog", "453")) self.label_sno.setText(_translate("personalDialog", "

工号:

")) self.line_sno.setText(_translate("personalDialog", "20001")) self.label_predepart.setText(_translate("personalDialog", "

原部门:

")) self.label_name.setText(_translate("personalDialog", "

姓名:

")) self.line_sname.setText(_translate("personalDialog", "xxx")) self.line_predepart.setText(_translate("personalDialog", "53")) self.label_afterpost.setText(_translate("personalDialog", "

调入职位:

")) self.button_ok.setText(_translate("personalDialog", "保存修改")) self.initcombox() #下拉列表 def initcombox(self): _translate = QtCore.QCoreApplication.translate db = pymysql.connect("localhost", "root", "123456", db="personnel_man") cur = db.cursor() sql = "SELECT d_name from department" cur.execute(sql) index = 0 for i in cur: for j in i: print(str(j)) self.comboxdepart.insertItem(index,j) sql = "SELECT p_name from professional" cur.execute(sql) index = 0 for i in cur: for j in i: self.comboBoxProfession.insertItem(index, j) #确定提交后 def clickOk(self): reply = QtWidgets.QMessageBox.question(self, '提示框', "确定保存修改吗?", QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No, QtWidgets.QMessageBox.No) if reply == QtWidgets.QMessageBox.No: return #判断输入字段是否为空 afterdepart = self.comboxdepart.currentText() afterpost = self.comboBoxProfession.currentText() print(afterdepart) print(afterpost) sno = self.line_sno.text() predepartt = self.line_predepart.text() prepost = self.line_prepost.text() db = pymysql.connect("localhost", "root", "123456", db="personnel_man") cur = db.cursor() try: cur.execute("select p_no from personnel order by (p_no+0) desc ") len = cur.fetchone() p_no = str(int(len[0])+1) except Exception as e: print(e) p_date = datetime.datetime.now().strftime('%Y-%m-%d') sql = "insert into personnel value ('%s','%s','%s','%s','%s','%s','%s')"%(p_no,sno,predepartt,afterdepart,prepost,afterpost,p_date) sta = cur.execute(sql) if sta == 1: print("修改成功") else: print("false") db.commit() cur.execute("select d_no from department where d_name = '%s' "%(afterdepart)) result = cur.fetchone() d_no = str(result[0]) cur.execute("select p_no from professional where p_name = '%s' " % (afterpost)) result = cur.fetchone() p_no = str(result[0]) sql = "update sp set d_no='%s',p_no = '%s',entry_time = '%s' where s_no = '%s'"%(d_no,p_no,p_date,sno) cur.execute(sql) db.commit() cur.close() db.close() self.add_info_success_signal.emit() self.close() return ''' def closeEvent(self, event): reply = QtWidgets.QMessageBox.question(self, '提示框', "确定不保存修改退出吗?", QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No, QtWidgets.QMessageBox.No) if reply == QtWidgets.QMessageBox.Yes: event.accept() else: event.ignore() ''' if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) mainMindow = changePersonelDialog() mainMindow.show() sys.exit(app.exec_()) -------------------------------------------------------------------------------- /salaryHistoryTable.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'salaryTable1.ui' # # Created by: PyQt5 UI code generator 5.9 # # WARNING! All changes made in this file will be lost! # 历史薪资查询 import sys from PyQt5 import QtCore, QtGui, QtWidgets import pymysql class salaryHistory(QtWidgets.QTableWidget): def __init__(self): super().__init__() self.setupUi(self) def setupUi(self, salary): salary.setObjectName("salary") salary.resize(890, 589) self.searchButton = QtWidgets.QPushButton(salary) self.searchButton.setGeometry(QtCore.QRect(640, 5, 91, 41)) self.searchButton.setObjectName("searchButton") self.comboBox = QtWidgets.QComboBox(salary) self.comboBox.setGeometry(QtCore.QRect(750, 5, 121, 41)) self.comboBox.setObjectName("comboBox") self.comboBox.addItem("") self.comboBox.addItem("") self.salaryTable = QtWidgets.QTableWidget(salary) self.salaryTable.setEditTriggers(QtWidgets.QTableWidget.NoEditTriggers) self.salaryTable.setSelectionBehavior(QtWidgets.QTableWidget.SelectRows) self.salaryTable.setGeometry(QtCore.QRect(5, 55, 870, 480)) self.salaryTable.setLayoutDirection(QtCore.Qt.LeftToRight) self.salaryTable.setAlternatingRowColors(True) self.salaryTable.setShowGrid(True) self.salaryTable.setWordWrap(False) self.salaryTable.setCornerButtonEnabled(True) self.salaryTable.setObjectName("salaryTable") self.salaryTable.setColumnCount(12) self.salaryTable.setRowCount(10) item = QtWidgets.QTableWidgetItem() self.salaryTable.setVerticalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() self.salaryTable.setVerticalHeaderItem(1, item) item = QtWidgets.QTableWidgetItem() self.salaryTable.setVerticalHeaderItem(2, item) item = QtWidgets.QTableWidgetItem() font = QtGui.QFont() font.setPointSize(10) item.setFont(font) self.salaryTable.setHorizontalHeaderItem(0, item) item = QtWidgets.QTableWidgetItem() self.salaryTable.setHorizontalHeaderItem(1, item) item = QtWidgets.QTableWidgetItem() self.salaryTable.setHorizontalHeaderItem(2, item) item = QtWidgets.QTableWidgetItem() self.salaryTable.setHorizontalHeaderItem(3, item) item = QtWidgets.QTableWidgetItem() self.salaryTable.setHorizontalHeaderItem(4, item) item = QtWidgets.QTableWidgetItem() self.salaryTable.setHorizontalHeaderItem(5, item) item = QtWidgets.QTableWidgetItem() self.salaryTable.setHorizontalHeaderItem(6, item) item = QtWidgets.QTableWidgetItem() self.salaryTable.setHorizontalHeaderItem(7, item) item = QtWidgets.QTableWidgetItem() self.salaryTable.setHorizontalHeaderItem(8, item) item = QtWidgets.QTableWidgetItem() self.salaryTable.setHorizontalHeaderItem(9, item) item = QtWidgets.QTableWidgetItem() self.salaryTable.setHorizontalHeaderItem(10, item) item = QtWidgets.QTableWidgetItem() self.salaryTable.setHorizontalHeaderItem(11, item) self.salaryTable.horizontalHeader().setSortIndicatorShown(False) self.salaryTable.horizontalHeader().setStretchLastSection(True) self.salaryTable.verticalHeader().setVisible(False) self.salaryTable.verticalHeader().setCascadingSectionResizes(False) self.salaryTable.verticalHeader().setSortIndicatorShown(False) self.salaryTable.verticalHeader().setStretchLastSection(False) self.searchText = QtWidgets.QLineEdit(salary) self.searchText.setGeometry(QtCore.QRect(5, 5, 600, 41)) self.searchText.setObjectName("searchText") self.retranslateUi(salary) self.readMysql() self.searchButton.clicked.connect(self.searchRecord) self.searchText.editingFinished.connect(self.searchRecord) # 右键删除 self.salaryTable.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) self.salaryTable.customContextMenuRequested[QtCore.QPoint].connect(self.MenuShow) # self.salaryTable.itemClicked.connect(self.MenuShow) QtCore.QMetaObject.connectSlotsByName(salary) def retranslateUi(self, salary): _translate = QtCore.QCoreApplication.translate salary.setWindowTitle(_translate("salary", "Form")) self.searchButton.setText(_translate("salary", "查询")) self.comboBox.setItemText(0, _translate("salary", "按姓名查找")) self.comboBox.setItemText(1, _translate("salary", "按工号查找")) self.salaryTable.setSortingEnabled(False) item = self.salaryTable.verticalHeaderItem(1) item.setText(_translate("salary", "New Row")) item = self.salaryTable.verticalHeaderItem(2) item.setText(_translate("salary", "New Row")) item = self.salaryTable.horizontalHeaderItem(0) item.setText(_translate("salary", "编号")) item = self.salaryTable.horizontalHeaderItem(1) item.setText(_translate("salary", "员工编号")) item = self.salaryTable.horizontalHeaderItem(2) item.setText(_translate("salary", "姓名")) item = self.salaryTable.horizontalHeaderItem(3) item.setText(_translate("salary", "性别")) item = self.salaryTable.horizontalHeaderItem(4) item.setText(_translate("salary", "发薪日期")) item = self.salaryTable.horizontalHeaderItem(5) item.setText(_translate("salary", "实际薪资")) item = self.salaryTable.horizontalHeaderItem(6) item.setText(_translate("salary", "底薪")) item = self.salaryTable.horizontalHeaderItem(7) item.setText(_translate("salary", "奖金")) item = self.salaryTable.horizontalHeaderItem(8) item.setText(_translate("salary", "加班费")) item = self.salaryTable.horizontalHeaderItem(9) item.setText(_translate("salary", "养老金")) item = self.salaryTable.horizontalHeaderItem(10) item.setText(_translate("salary", "医疗保险")) item = self.salaryTable.horizontalHeaderItem(11) item.setText(_translate("salary", "应扣工资")) __sortingEnabled = self.salaryTable.isSortingEnabled() self.salaryTable.setSortingEnabled(False) self.salaryTable.setSortingEnabled(__sortingEnabled) def readMysql(self): db = pymysql.connect("localhost", "root", "123456", db="personnel_man") cur = db.cursor() sql = "select sa.sa_no,sa.s_no,staff.s_name,staff.s_sex,sa.s_date,real_salary,leastpays,prize,doublingpays,dkannuity,dkinsurrance,deduct "+\ "from salary as sa,staff "+\ "where sa.s_no = staff.s_no "+\ " Order By (sa.sa_no+0) desc ,sa.s_date desc" cur.execute(sql) len = cur.fetchall().__len__() cur.execute(sql) self.salaryTable.setRowCount(len) k = 0 for i in cur: w = 0 for j in i: newItem = QtWidgets.QTableWidgetItem(str(j)) self.salaryTable.setItem(k, w, newItem) w += 1 k += 1 cur.close() db.close() # 点击查询 def searchRecord(self): db = pymysql.connect("localhost", "root", "123456", db="personnel_man") cur = db.cursor() if (self.searchText.text() == ""): sql = "select sa.sa_no,sa.s_no,staff.s_name,staff.s_sex,sa.s_date,real_salary,leastpays,prize,doublingpays,dkannuity,dkinsurrance,deduct from salary as sa,staff " + \ "where sa.s_no = staff.s_no " + \ " Order By (sa.sa_no+0) desc ,sa.s_date desc" cur.execute(sql) len = cur.fetchall().__len__() cur.execute(sql) self.salaryTable.setRowCount(len) k = 0 for i in cur: w = 0 for j in i: newItem = QtWidgets.QTableWidgetItem(str(j)) self.salaryTable.setItem(k, w, newItem) w += 1 k += 1 return # 输入框内容 temp = self.searchText.text() s = '%' + temp + '%' # 分类查询 conditionChoice = self.comboBox.currentText() if (conditionChoice == "按姓名查找"): sql = "select sa.sa_no,sa.s_no,staff.s_name,staff.s_sex,sa.s_date,real_salary,leastpays,prize,doublingpays,dkannuity,dkinsurrance,deduct from salary as sa,staff " + \ "where sa.s_no = staff.s_no " + \ "and staff.s_name LIKE '%s' Order By (sa.sa_no+0) desc ,sa.s_date desc" % ( s ) elif (conditionChoice == "按工号查找"): sql = "select sa.sa_no,sa.s_no,staff.s_name,staff.s_sex,sa.s_date,real_salary,leastpays,prize,doublingpays,dkannuity,dkinsurrance,deduct from salary as sa,staff " + \ "where sa.s_no = staff.s_no " + \ "and staff.s_no LIKE '%s' Order By (sa.sa_no+0) desc ,sa.s_date desc" % (s) self.salaryTable.clearContents() # 清空表格 # 重新查找后生成表格 cur.execute(sql) len = cur.fetchall().__len__() cur.execute(sql) self.salaryTable.setRowCount(len) k = 0 for i in cur: w = 0 for j in i: newItem = QtWidgets.QTableWidgetItem(str(j)) self.salaryTable.setItem(k, w, newItem) w += 1 k += 1 if (self.searchText.text() == ""): pass cur.close() db.close() def MenuShow(self): try: rightMenu = QtWidgets.QMenu(self.salaryTable) removeAction = QtWidgets.QAction(u"删除", self, triggered=self.deleteItem) # triggered 为右键菜单点击后的激活事件。这里slef.close调用的是系统自带的关闭事件。 rightMenu.addAction(removeAction) rightMenu.exec_(QtGui.QCursor.pos()) except Exception as e: print(e) def deleteItem(self): db = pymysql.connect("localhost", "root", "123456", db="personnel_man") cur = db.cursor() row = self.salaryTable.currentRow() sa_no = self.salaryTable.item(row, 0).text() print(sa_no) reply = QtWidgets.QMessageBox.question(self, '提示框', "确定要删除这条数据吗?", QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No, QtWidgets.QMessageBox.No) if reply == QtWidgets.QMessageBox.Yes: # print("yes") sql = "delete from salary where sa_no = '%s'" % (sa_no) try: print(sql) cur.execute(sql) except Exception as e: print(e) self.salaryTable.removeRow(row) db.commit() else: return if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) mainMindow = salaryHistory() mainMindow.show() sys.exit(app.exec_()) -------------------------------------------------------------------------------- /staffAdmin.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import pymysql 3 | from PyQt5 import QtWidgets 4 | from staff import Ui_MainWindow 5 | import sip 6 | 7 | class staffAdmin(QtWidgets.QMainWindow,Ui_MainWindow): 8 | def __init__(self): 9 | super(staffAdmin, self).__init__() 10 | self.setupUi(self) 11 | 12 | def test(self): 13 | self.tableWidget.hide() 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | if __name__=='__main__': 22 | app = QtWidgets.QApplication(sys.argv) 23 | my_staffAdmin = staffAdmin() 24 | my_staffAdmin.show() 25 | #打开数据库 26 | ''' 27 | db = pymysql.connect("localhost", "user", "123456", "personnel_man") 28 | cursor = db.cursor() 29 | try: 30 | cursor.execute("select * from department") 31 | results = cursor.fetchall() 32 | for row in results: 33 | dno = row[0] 34 | dname = row[1] 35 | sno = row[2] 36 | print(dname) 37 | my_staffAdmin.textBrowser.append("%8s\t%8s\t%8s" %(dno,dname,sno)) 38 | except: 39 | print("error") 40 | db.close() 41 | ''' 42 | sys.exit(app.exec_()) -------------------------------------------------------------------------------- /staff_detail.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | # Form implementation generated from reading ui file 'staff_detail.ui' 4 | # 5 | # Created by: PyQt5 UI code generator 5.11.2 6 | # 7 | # WARNING! All changes made in this file will be lost! 8 | 9 | from PyQt5 import QtCore, QtGui, QtWidgets 10 | 11 | class Ui_staff_detail(object): 12 | def setupUi(self, staff_detail): 13 | staff_detail.setObjectName("staff_detail") 14 | staff_detail.setEnabled(True) 15 | staff_detail.resize(917, 571) 16 | staff_detail.setStyleSheet("background-color:#f4f9f4;") 17 | self.lineEdit = QtWidgets.QLineEdit(staff_detail) 18 | self.lineEdit.setGeometry(QtCore.QRect(390, 40, 121, 21)) 19 | self.lineEdit.setStyleSheet("font: 14pt \"华文行楷\";\n" 20 | "color:rgb(80, 126, 59);\n" 21 | "background-color:transparent;\n" 22 | "border:outset;") 23 | self.lineEdit.setObjectName("lineEdit") 24 | self.no = QtWidgets.QLineEdit(staff_detail) 25 | self.no.setEnabled(False) 26 | self.no.setGeometry(QtCore.QRect(320, 130, 101, 21)) 27 | self.no.setStyleSheet("border:outset;\n" 28 | "background:transparent;\n" 29 | "") 30 | self.no.setText("") 31 | self.no.setObjectName("no") 32 | self.label_9 = QtWidgets.QLabel(staff_detail) 33 | self.label_9.setGeometry(QtCore.QRect(250, 130, 61, 21)) 34 | self.label_9.setStyleSheet("font: 10pt \"幼圆\";") 35 | self.label_9.setObjectName("label_9") 36 | self.email = QtWidgets.QLineEdit(staff_detail) 37 | self.email.setGeometry(QtCore.QRect(590, 330, 101, 21)) 38 | self.email.setStyleSheet("border:outset;") 39 | self.email.setText("") 40 | self.email.setObjectName("email") 41 | self.name = QtWidgets.QLineEdit(staff_detail) 42 | self.name.setGeometry(QtCore.QRect(590, 130, 101, 21)) 43 | self.name.setStyleSheet("border:outset;") 44 | self.name.setText("") 45 | self.name.setObjectName("name") 46 | self.label = QtWidgets.QLabel(staff_detail) 47 | self.label.setGeometry(QtCore.QRect(520, 130, 61, 21)) 48 | self.label.setStyleSheet("font: 10pt \"幼圆\";") 49 | self.label.setObjectName("label") 50 | self.label_5 = QtWidgets.QLabel(staff_detail) 51 | self.label_5.setGeometry(QtCore.QRect(250, 330, 61, 21)) 52 | self.label_5.setStyleSheet("font: 10pt \"幼圆\";") 53 | self.label_5.setObjectName("label_5") 54 | self.label_2 = QtWidgets.QLabel(staff_detail) 55 | self.label_2.setGeometry(QtCore.QRect(250, 170, 61, 21)) 56 | self.label_2.setStyleSheet("font: 10pt \"幼圆\";") 57 | self.label_2.setObjectName("label_2") 58 | self.label_3 = QtWidgets.QLabel(staff_detail) 59 | self.label_3.setGeometry(QtCore.QRect(250, 210, 61, 21)) 60 | self.label_3.setStyleSheet("font: 10pt \"幼圆\";") 61 | self.label_3.setObjectName("label_3") 62 | self.tel = QtWidgets.QLineEdit(staff_detail) 63 | self.tel.setGeometry(QtCore.QRect(320, 330, 101, 21)) 64 | self.tel.setStyleSheet("border:outset;") 65 | self.tel.setObjectName("tel") 66 | self.label_4 = QtWidgets.QLabel(staff_detail) 67 | self.label_4.setGeometry(QtCore.QRect(250, 250, 61, 21)) 68 | self.label_4.setStyleSheet("font: 10pt \"幼圆\";") 69 | self.label_4.setObjectName("label_4") 70 | self.label_8 = QtWidgets.QLabel(staff_detail) 71 | self.label_8.setGeometry(QtCore.QRect(250, 290, 61, 21)) 72 | self.label_8.setStyleSheet("font: 10pt \"幼圆\";") 73 | self.label_8.setObjectName("label_8") 74 | self.label_7 = QtWidgets.QLabel(staff_detail) 75 | self.label_7.setGeometry(QtCore.QRect(520, 170, 61, 21)) 76 | self.label_7.setStyleSheet("font: 10pt \"幼圆\";") 77 | self.label_7.setObjectName("label_7") 78 | self.identity = QtWidgets.QLineEdit(staff_detail) 79 | self.identity.setGeometry(QtCore.QRect(320, 250, 101, 21)) 80 | self.identity.setStyleSheet("border:outset;") 81 | self.identity.setObjectName("identity") 82 | self.address = QtWidgets.QLineEdit(staff_detail) 83 | self.address.setGeometry(QtCore.QRect(320, 290, 101, 21)) 84 | self.address.setStyleSheet("border:outset;") 85 | self.address.setText("") 86 | self.address.setObjectName("address") 87 | self.label_6 = QtWidgets.QLabel(staff_detail) 88 | self.label_6.setGeometry(QtCore.QRect(520, 330, 61, 21)) 89 | self.label_6.setStyleSheet("font: 10pt \"幼圆\";") 90 | self.label_6.setObjectName("label_6") 91 | self.sex = QtWidgets.QLineEdit(staff_detail) 92 | self.sex.setGeometry(QtCore.QRect(320, 170, 101, 21)) 93 | self.sex.setStyleSheet("border:outset;") 94 | self.sex.setText("") 95 | self.sex.setObjectName("sex") 96 | self.birth = QtWidgets.QLineEdit(staff_detail) 97 | self.birth.setGeometry(QtCore.QRect(320, 210, 101, 21)) 98 | self.birth.setStyleSheet("border:outset;") 99 | self.birth.setText("") 100 | self.birth.setObjectName("birth") 101 | self.isMarried = QtWidgets.QLineEdit(staff_detail) 102 | self.isMarried.setGeometry(QtCore.QRect(590, 170, 101, 21)) 103 | self.isMarried.setStyleSheet("border:outset;") 104 | self.isMarried.setText("") 105 | self.isMarried.setObjectName("isMarried") 106 | self.label_10 = QtWidgets.QLabel(staff_detail) 107 | self.label_10.setGeometry(QtCore.QRect(520, 250, 61, 21)) 108 | self.label_10.setStyleSheet("font: 10pt \"幼圆\";") 109 | self.label_10.setObjectName("label_10") 110 | self.label_11 = QtWidgets.QLabel(staff_detail) 111 | self.label_11.setGeometry(QtCore.QRect(250, 370, 61, 21)) 112 | self.label_11.setStyleSheet("font: 10pt \"幼圆\";") 113 | self.label_11.setObjectName("label_11") 114 | self.school = QtWidgets.QLineEdit(staff_detail) 115 | self.school.setGeometry(QtCore.QRect(320, 410, 101, 21)) 116 | self.school.setStyleSheet("border:outset;") 117 | self.school.setText("") 118 | self.school.setObjectName("school") 119 | self.major = QtWidgets.QLineEdit(staff_detail) 120 | self.major.setGeometry(QtCore.QRect(590, 370, 101, 21)) 121 | self.major.setStyleSheet("border:outset;") 122 | self.major.setObjectName("major") 123 | self.education = QtWidgets.QLineEdit(staff_detail) 124 | self.education.setGeometry(QtCore.QRect(320, 370, 101, 21)) 125 | self.education.setStyleSheet("border:outset;") 126 | self.education.setObjectName("education") 127 | self.label_13 = QtWidgets.QLabel(staff_detail) 128 | self.label_13.setGeometry(QtCore.QRect(520, 210, 61, 21)) 129 | self.label_13.setStyleSheet("font: 10pt \"幼圆\";") 130 | self.label_13.setObjectName("label_13") 131 | self.department = QtWidgets.QLineEdit(staff_detail) 132 | self.department.setGeometry(QtCore.QRect(590, 210, 101, 21)) 133 | self.department.setStyleSheet("border:outset;") 134 | self.department.setText("") 135 | self.department.setObjectName("department") 136 | self.professional = QtWidgets.QLineEdit(staff_detail) 137 | self.professional.setGeometry(QtCore.QRect(590, 250, 101, 21)) 138 | self.professional.setStyleSheet("border:outset;") 139 | self.professional.setText("") 140 | self.professional.setObjectName("professional") 141 | self.label_school = QtWidgets.QLabel(staff_detail) 142 | self.label_school.setGeometry(QtCore.QRect(250, 410, 61, 21)) 143 | self.label_school.setStyleSheet("font: 10pt \"幼圆\";") 144 | self.label_school.setObjectName("label_school") 145 | self.label_major = QtWidgets.QLabel(staff_detail) 146 | self.label_major.setGeometry(QtCore.QRect(520, 370, 61, 21)) 147 | self.label_major.setStyleSheet("font: 10pt \"幼圆\";") 148 | self.label_major.setObjectName("label_major") 149 | self.label_17 = QtWidgets.QLabel(staff_detail) 150 | self.label_17.setGeometry(QtCore.QRect(520, 290, 61, 21)) 151 | self.label_17.setStyleSheet("font: 10pt \"幼圆\";") 152 | self.label_17.setObjectName("label_17") 153 | self.workingtime = QtWidgets.QLineEdit(staff_detail) 154 | self.workingtime.setGeometry(QtCore.QRect(590, 290, 101, 21)) 155 | self.workingtime.setStyleSheet("border:outset;") 156 | self.workingtime.setText("") 157 | self.workingtime.setObjectName("workingtime") 158 | self.back = QtWidgets.QPushButton(staff_detail) 159 | self.back.setEnabled(True) 160 | self.back.setGeometry(QtCore.QRect(40, 20, 31, 31)) 161 | self.back.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 162 | self.back.setStyleSheet("border-image: url(:/newPrefix/images/back.png);") 163 | self.back.setText("") 164 | self.back.setObjectName("back") 165 | self.time = QtWidgets.QLineEdit(staff_detail) 166 | self.time.setGeometry(QtCore.QRect(590, 410, 101, 21)) 167 | self.time.setStyleSheet("border:outset;") 168 | self.time.setText("") 169 | self.time.setObjectName("time") 170 | self.label_time = QtWidgets.QLabel(staff_detail) 171 | self.label_time.setGeometry(QtCore.QRect(520, 410, 61, 21)) 172 | self.label_time.setStyleSheet("font: 10pt \"幼圆\";") 173 | self.label_time.setObjectName("label_time") 174 | self.label_9.setBuddy(self.no) 175 | self.label.setBuddy(self.name) 176 | self.label_5.setBuddy(self.tel) 177 | self.label_2.setBuddy(self.sex) 178 | self.label_3.setBuddy(self.birth) 179 | self.label_4.setBuddy(self.identity) 180 | self.label_8.setBuddy(self.address) 181 | self.label_7.setBuddy(self.isMarried) 182 | self.label_6.setBuddy(self.email) 183 | self.label_10.setBuddy(self.professional) 184 | self.label_11.setBuddy(self.education) 185 | self.label_13.setBuddy(self.department) 186 | self.label_school.setBuddy(self.school) 187 | self.label_major.setBuddy(self.major) 188 | self.label_17.setBuddy(self.workingtime) 189 | self.label_time.setBuddy(self.school) 190 | 191 | self.retranslateUi(staff_detail) 192 | self.back.clicked.connect(staff_detail.goback) 193 | QtCore.QMetaObject.connectSlotsByName(staff_detail) 194 | 195 | def retranslateUi(self, staff_detail): 196 | _translate = QtCore.QCoreApplication.translate 197 | staff_detail.setWindowTitle(_translate("staff_detail", "Form")) 198 | self.lineEdit.setText(_translate("staff_detail", "员工详细信息")) 199 | self.label_9.setText(_translate("staff_detail", "员工编号:")) 200 | self.label.setText(_translate("staff_detail", "员工姓名:")) 201 | self.label_5.setText(_translate("staff_detail", "电话:")) 202 | self.label_2.setText(_translate("staff_detail", "性别:")) 203 | self.label_3.setText(_translate("staff_detail", "出生日期:")) 204 | self.label_4.setText(_translate("staff_detail", "身份证号:")) 205 | self.label_8.setText(_translate("staff_detail", "住址:")) 206 | self.label_7.setText(_translate("staff_detail", "婚否:")) 207 | self.label_6.setText(_translate("staff_detail", "邮箱:")) 208 | self.label_10.setText(_translate("staff_detail", "职位:")) 209 | self.label_11.setText(_translate("staff_detail", "学历:")) 210 | self.label_13.setText(_translate("staff_detail", "所属部门:")) 211 | self.label_school.setText(_translate("staff_detail", "毕业院校:")) 212 | self.label_major.setText(_translate("staff_detail", "专业:")) 213 | self.label_17.setText(_translate("staff_detail", "工龄:")) 214 | self.label_time.setText(_translate("staff_detail", "毕业时间:")) 215 | 216 | import img_rc 217 | --------------------------------------------------------------------------------