用python写一个图形化界面的学生管理系统
时间: 2023-10-09 17:10:18 浏览: 52
好的,我可以帮你讲一下如何用Python实现一个图形化界面的学生管理系统。
首先,你需要安装Python的GUI库,可以选择Tkinter、PyQt等。这里我们以Tkinter为例。
然后,你需要设计你的学生管理系统的功能和界面,比如添加学生、删除学生、修改学生信息、查询学生等功能。可以参考以下代码:
```python
import tkinter as tk
class StudentManagementSystem:
def __init__(self, master):
self.master = master
self.master.title('学生管理系统')
self.master.geometry('500x300')
# 添加学生
self.add_frame = tk.Frame(self.master)
self.add_frame.pack()
tk.Label(self.add_frame, text='添加学生').grid(row=0, column=0)
tk.Label(self.add_frame, text='姓名:').grid(row=1, column=0)
self.add_name_entry = tk.Entry(self.add_frame)
self.add_name_entry.grid(row=1, column=1)
tk.Label(self.add_frame, text='年龄:').grid(row=2, column=0)
self.add_age_entry = tk.Entry(self.add_frame)
self.add_age_entry.grid(row=2, column=1)
tk.Button(self.add_frame, text='添加', command=self.add_student).grid(row=3, column=1)
# 删除学生
self.delete_frame = tk.Frame(self.master)
self.delete_frame.pack()
tk.Label(self.delete_frame, text='删除学生').grid(row=0, column=0)
tk.Label(self.delete_frame, text='姓名:').grid(row=1, column=0)
self.delete_name_entry = tk.Entry(self.delete_frame)
self.delete_name_entry.grid(row=1, column=1)
tk.Button(self.delete_frame, text='删除', command=self.delete_student).grid(row=2, column=1)
# 修改学生信息
self.edit_frame = tk.Frame(self.master)
self.edit_frame.pack()
tk.Label(self.edit_frame, text='修改学生信息').grid(row=0, column=0)
tk.Label(self.edit_frame, text='姓名:').grid(row=1, column=0)
self.edit_name_entry = tk.Entry(self.edit_frame)
self.edit_name_entry.grid(row=1, column=1)
tk.Label(self.edit_frame, text='新年龄:').grid(row=2, column=0)
self.edit_age_entry = tk.Entry(self.edit_frame)
self.edit_age_entry.grid(row=2, column=1)
tk.Button(self.edit_frame, text='修改', command=self.edit_student).grid(row=3, column=1)
# 查询学生
self.query_frame = tk.Frame(self.master)
self.query_frame.pack()
tk.Label(self.query_frame, text='查询学生').grid(row=0, column=0)
tk.Label(self.query_frame, text='姓名:').grid(row=1, column=0)
self.query_name_entry = tk.Entry(self.query_frame)
self.query_name_entry.grid(row=1, column=1)
tk.Button(self.query_frame, text='查询', command=self.query_student).grid(row=2, column=1)
# 显示学生列表
self.list_frame = tk.Frame(self.master)
self.list_frame.pack()
tk.Label(self.list_frame, text='学生列表').grid(row=0, column=0)
self.student_listbox = tk.Listbox(self.list_frame)
self.student_listbox.grid(row=1, column=0)
def add_student(self):
name = self.add_name_entry.get()
age = self.add_age_entry.get()
# TODO: 添加学生到数据库
self.student_listbox.insert(tk.END, f'{name}({age})')
self.add_name_entry.delete(0, tk.END)
self.add_age_entry.delete(0, tk.END)
def delete_student(self):
name = self.delete_name_entry.get()
# TODO: 从数据库删除学生
students = self.student_listbox.get(0, tk.END)
for i, student in enumerate(students):
if name in student:
self.student_listbox.delete(i)
self.delete_name_entry.delete(0, tk.END)
def edit_student(self):
name = self.edit_name_entry.get()
age = self.edit_age_entry.get()
# TODO: 修改学生信息
students = self.student_listbox.get(0, tk.END)
for i, student in enumerate(students):
if name in student:
self.student_listbox.delete(i)
self.student_listbox.insert(i, f'{name}({age})')
self.edit_name_entry.delete(0, tk.END)
self.edit_age_entry.delete(0, tk.END)
def query_student(self):
name = self.query_name_entry.get()
# TODO: 查询学生信息
students = self.student_listbox.get(0, tk.END)
for student in students:
if name in student:
tk.messagebox.showinfo('查询结果', student)
self.query_name_entry.delete(0, tk.END)
if __name__ == '__main__':
root = tk.Tk()
app = StudentManagementSystem(root)
root.mainloop()
```
这段代码实现了一个简单的学生管理系统,包括添加学生、删除学生、修改学生信息、查询学生等功能。你需要把TODO的部分补充完整,实现与数据库的交互。
希望这个例子能够帮到你,如果你有其他问题,可以继续问我。