帮我写一个基于python和pyqt5,mysql的学生宿舍管理系统
时间: 2024-10-14 12:16:48 浏览: 29
基于python+pyQt5+mysql实现的学生宿舍管理系统源码+数据库+GUI界面+说明文档.zip
5星 · 资源好评率100%
构建一个基于Python和PyQt5的MySQL学生宿舍管理系统是一个相对复杂的项目,涉及到数据库连接、GUI设计以及数据处理等多个部分。下面是一个简化的框架示例,用于创建基本的功能,如添加、编辑和查询学生信息:
首先,确保已安装所需的库:
```bash
pip install pyqt5 mysql-connector-python
```
然后,创建一个名为`student_dorm.py`的文件,并包含以下代码:
```python
import sys
import sqlite3
from PyQt5.QtWidgets import QApplication, QMainWindow, QFormLayout, QLabel, QLineEdit, QPushButton, QMessageBox
class StudentDorm(QMainWindow):
def __init__(self):
super().__init__()
# 初始化UI
self.setWindowTitle('Student Dorm Management System')
self.setGeometry(100, 100, 640, 480)
self.conn = None
self.cursor = None
self.init_ui()
def init_ui(self):
self.setCentralWidget(QFormLayout())
# 添加学生信息输入框
self.name_label = QLabel('Name:')
self.name_input = QLineEdit()
self.form_layout.addRow(self.name_label, self.name_input)
self.id_label = QLabel('ID:')
self.id_input = QLineEdit()
self.form_layout.addRow(self.id_label, self.id_input)
# 添加按钮
add_button = QPushButton('Add Student')
add_button.clicked.connect(self.add_student)
self.form_layout.addRow(add_button)
# ... 更多功能按钮和SQL操作...
def add_student(self):
name = self.name_input.text()
id = self.id_input.text()
if not name or not id:
QMessageBox.warning(self, 'Error', 'Please fill in both fields.')
return
try:
self.conn = sqlite3.connect('students.db') # 使用SQLite示例,实际应用请用MySQL
self.cursor.execute('''
INSERT INTO students (name, id) VALUES (?, ?);
''', (name, id))
self.conn.commit()
QMessageBox.information(self, 'Success', 'Student added successfully.')
except Exception as e:
QMessageBox.critical(self, 'Error', f'Failed to add student: {str(e)}')
finally:
if self.conn:
self.conn.close()
if __name__ == '__main__':
app = QApplication(sys.argv)
dorm_app = StudentDorm()
dorm_app.show()
sys.exit(app.exec_())
```
这是一个基础的开始,实际系统可能还需要包括表单验证、错误处理、数据查询、显示等功能,以及连接到真正的MySQL数据库而不是SQLite。对于MySQL,你需要使用`mysql.connector`模块替换`sqlite3`。
阅读全文