From f879471f39701e175e3cd4c0d602ee8007991b64 Mon Sep 17 00:00:00 2001 From: pzkn3atj5 Date: Fri, 26 May 2023 16:09:17 +0800 Subject: [PATCH] ADD file via upload --- EditAdmin.py | 122 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 EditAdmin.py diff --git a/EditAdmin.py b/EditAdmin.py new file mode 100644 index 0000000..7ea476c --- /dev/null +++ b/EditAdmin.py @@ -0,0 +1,122 @@ +""" + +代码功能:修改用户界面设计与功能实现 +""" +from PyQt5 import QtCore, QtWidgets +from PyQt5.QtWidgets import QApplication, QMainWindow, QMessageBox, QInputDialog, QLineEdit + +from ComboCheckBox import QComboCheckBox +from db import sql_execute +from sqls import * + + +class EditAdmin(object): + # 界面设计 + def setupUi(self, Form, adminId): + Form.setObjectName("Form") + Form.resize(360, 279) + self.label = QtWidgets.QLabel(Form) + self.label.setGeometry(QtCore.QRect(40, 40, 54, 12)) + self.label.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) + self.label.setObjectName("label") + admin = sql_execute(getAdminById(adminId))[0] + self.textEdit = QtWidgets.QLineEdit(Form) + self.textEdit.setGeometry(QtCore.QRect(100, 30, 181, 31)) + self.textEdit.setText(admin[1]) + self.textEdit.setObjectName("textEdit") + self.textEdit_2 = QtWidgets.QLineEdit(Form) + self.textEdit_2.setGeometry(QtCore.QRect(100, 80, 181, 31)) + self.textEdit_2.setText(admin[3]) + self.textEdit_2.setObjectName("textEdit_2") + self.label_2 = QtWidgets.QLabel(Form) + self.label_2.setGeometry(QtCore.QRect(40, 90, 54, 12)) + self.label_2.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) + self.label_2.setObjectName("label_2") + self.textEdit_3 = QComboCheckBox(Form) + + class_dict = [] + try: + # 不为超级管理员 + if admin[4] != '0': + data4 = admin[4].split(',') + for d in data4: + class_dict.append(d) + except Exception as e: + pass + + # 获取班级列表(供老师选择来管理) + classlist = sql_execute(getClassList('0', '')) + for class_ in classlist: + self.textEdit_3.add_item('%d.%s' % (class_[0], class_[1]), + flag=admin[4] == '0' or str(class_[0]) in class_dict) + self.textEdit_3.setGeometry(QtCore.QRect(100, 130, 181, 31)) + self.textEdit_3.setObjectName("textEdit_3") + self.label_3 = QtWidgets.QLabel(Form) + self.label_3.setGeometry(QtCore.QRect(23, 140, 71, 20)) + self.label_3.setObjectName("label_3") + self.pushButton = QtWidgets.QPushButton(Form) + self.pushButton.setGeometry(QtCore.QRect(150, 220, 75, 23)) + self.pushButton.setObjectName("pushButton") + + # 提交按钮 + self.pushButton.clicked.connect(lambda: self.updateAdmin(adminId, Form)) + + self.pushButton_2 = QtWidgets.QPushButton(Form) + self.pushButton_2.setGeometry(QtCore.QRect(230, 220, 75, 23)) + self.pushButton_2.setObjectName("pushButton_2") + + # 取消按钮 + self.pushButton_2.clicked.connect(lambda: Form.hide()) + + self.pushButton_3 = QtWidgets.QPushButton(Form) + self.pushButton_3.setGeometry(QtCore.QRect(10, 220, 75, 23)) + self.pushButton_3.setObjectName("pushButton_3") + + # 重置密码按钮 + self.pushButton_3.clicked.connect(lambda: self.resetPassw(adminId, Form)) + + self.retranslateUi(Form) + QtCore.QMetaObject.connectSlotsByName(Form) + + # 重新翻译(针对性修改) + def retranslateUi(self, Form): + _translate = QtCore.QCoreApplication.translate + Form.setWindowTitle(_translate("Form", "编辑角色")) + self.label.setText(_translate("Form", "用户名:")) + self.label_2.setText(_translate("Form", "备注:")) + self.label_3.setText(_translate("Form", "可管理班级:")) + self.pushButton.setText(_translate("Form", "提交")) + self.pushButton_2.setText(_translate("Form", "取消")) + self.pushButton_3.setText(_translate("Form", "重置密码")) + + # 功能实现(修改用户名) + def updateAdmin(self, adminId, Form): + username = self.textEdit.text() + mark = self.textEdit_2.text() + classids = self.textEdit_3.get_class_text() + sql_execute(updateAdminById(adminId, username, mark, classids)) + QMessageBox.about(Form, '成功', "编辑成功!请刷新列表数据。") + Form.hide() + + # 功能实现(重置密码) + def resetPassw(self, adminId, Form): + text, okPressed = QInputDialog.getText(Form, "重置密码", "新密码:", QLineEdit.Normal, '') + if okPressed: + try: + sql_execute(resetAdminPasswById(adminId, text)) + QMessageBox.about(Form, '成功', '重置密码成功!') + except Exception as e: + QMessageBox.critical(Form, '失败', '重置密码失败:\n') + Form.hide() + + +# 测试 +if __name__ == "__main__": + import sys + App = QApplication(sys.argv) # 创建QApplication对象,作为GUI主程序入口 + aw = EditAdmin() # 创建主窗体对象,实例化Ui_MainWindow + w = QMainWindow() # 实例化QMainWindow类 + aw.setupUi(w, 1) # 主窗体对象调用setupUi方法,对QMainWindow对象进行设置 + w.show() # 显示主窗体 + w.setWindowTitle('Python学生管理系统-修改用户') + sys.exit(App.exec_()) # 循环中等待退出程序