if not student_id or not name or not id_card or not phone: QMessageBox.warning(self, '警告', '请填写必填信息') return # 插入学生信息 query = QSqlQuery() query.prepare('INSERT INTO student (student_id, name, gender, id_card, department, grade, major, hometown, phone, email, qq) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)') query.addBindValue(student_id) query.addBindValue(name) query.addBindValue(gender) query.addBindValue(id_card) query.addBindValue(department) query.addBindValue(grade) query.addBindValue(major) query.addBindValue(hometown) query.addBindValue(phone) query.addBindValue(email) query.addBindValue(qq) if not query.exec_(): print(query.lastError().text()) QMessageBox.warning(self, '警告', '添加学生失败') return # 刷新表格视图 self.model.select() # 关闭对话框 dialog.close() def modify_student(self): # 获取选中的行 selected = self.tableView.selectionModel().selectedRows() if not selected: QMessageBox.warning(self, '警告', '请先选择要修改的学生') return
时间: 2024-04-03 21:32:49 浏览: 58
这段代码实现了向数据库添加学生信息的功能。首先,通过判断输入框中是否填写了必填信息(学号、姓名、身份证号码和电话号码),如果没有填写,则弹出警告对话框,并返回。如果填写了必填信息,则通过 QSqlQuery 对象创建 SQL 语句,将学生信息插入到数据库中。如果插入失败,则打印出错误信息,并弹出警告对话框。最后,刷新表格视图,以显示添加后的数据,并关闭添加学生信息对话框。
接下来,定义了 modify_student 方法,用于修改学生信息。在该方法中,首先通过调用 self.tableView.selectionModel().selectedRows() 方法获取当前选中的行,如果没有选中任何行,则弹出警告对话框并返回。
相关问题
# 校验学生信息 if not student_id or not name or not id_card or not phone: QMessageBox.warning(self, '警告', '请填写必填信息') return # 更新学生信息 query = QSqlQuery() query.prepare('UPDATE student SET student_id = ?, name = ?, gender = ?, id_card = ?, department = ?, grade = ?, major = ?, hometown = ?, phone = ?, email = ?, qq = ? WHERE id = ?') query.addBindValue(student_id) query.addBindValue(name) query.addBindValue(gender) query.addBindValue(id_card) query.addBindValue(department) query.addBindValue(grade) query.addBindValue(major) query.addBindValue(hometown) query.addBindValue(phone) query.addBindValue(email) query.addBindValue(qq) query.addBindValue(index.siblingAtColumn(0).data()) if not query.exec_(): print(query.lastError().text()) QMessageBox.warning(self, '警告', '修改学生失败') return # 刷新表格视图 self.model.select() # 关闭对话框 dialog.close() def delete_student(self): # 获取选中的行 selected = self.tableView.selectionModel().selectedRows() if not selected: QMessageBox.warning(self, '警告', '请先选择要删除的学生') return
这段代码是关于学生信息管理的,其中包括校验学生信息、更新学生信息和删除学生信息的功能。其中,校验学生信息部分是判断必填信息是否填写完整,如果不完整则会弹出警告框。更新学生信息部分是通过SQL语句更新数据库中的学生信息,如果更新失败则会弹出警告框,最后刷新表格视图。删除学生信息部分则是获取选中的行,如果没有选中则会弹出警告框,否则会删除数据库中对应的学生信息。
解释 def predict_click(self): if self.running: QtWidgets.QMessageBox.warning(self, 'warning', f'处理中。。。请等待处理结束后重试!', buttons=QtWidgets.QMessageBox.Ok) return if not self.pic_ok: QtWidgets.QMessageBox.warning(self, 'warning', f'请先选择图片!', buttons=QtWidgets.QMessageBox.Ok) return
这段代码是一个函数 `predict_click`,它会被当作一个回调函数在用户点击某个按钮时被调用。这个函数的作用是判断当前程序是否正在运行(`self.running`),如果正在运行,就弹出一个警告框提示用户等待程序处理结束后再重试。如果程序没有在运行,就会继续执行下一步判断。下一步判断是检查用户是否已经选择了一张图片(`not self.pic_ok`),如果没有选择图片,就会弹出一个提示框提示用户先选择图片。如果用户已经选择了图片,就会继续执行下一步的操作。这段代码中使用了 PyQt5 库的类 `QtWidgets.QMessageBox` 来弹出提示框。
阅读全文