用python编写一个程序,其中包括一个菜单和一个多选列表框。菜单应该包含两个选项:添加学生和删除学生。当用户选择添加学生选项时,程序应该弹出一个对话框,要求用户输入学生的姓名、年龄和成绩。当用户选择删除学生选项时,程序应该从列表框中删除当前选定的学生。同时,当用户在列表框中选择一个学生时,程序应该显示该学生的详细信息。
时间: 2024-02-15 07:05:46 浏览: 93
好的,以下是你需要的 Python 代码:
```python
from tkinter import *
from tkinter import messagebox
class Student:
def __init__(self, name, age, score):
self.name = name
self.age = age
self.score = score
class StudentManagement:
def __init__(self, master):
self.master = master
self.master.title("学生管理系统")
# 创建菜单
menu = Menu(self.master)
self.master.config(menu=menu)
# 添加学生选项
add_menu = Menu(menu)
menu.add_cascade(label="添加学生", menu=add_menu)
add_menu.add_command(label="添加", command=self.add_student)
# 删除学生选项
del_menu = Menu(menu)
menu.add_cascade(label="删除学生", menu=del_menu)
del_menu.add_command(label="删除", command=self.del_student)
# 创建多选列表框
self.listBox = Listbox(self.master, selectmode=MULTIPLE)
self.listBox.pack(fill=BOTH, expand=True)
self.listBox.bind("<ButtonRelease-1>", self.show_detail)
# 初始化学生列表
self.students = [
Student("张三", 20, 80),
Student("李四", 21, 85),
Student("王五", 22, 90)
]
for student in self.students:
self.listBox.insert(END, student.name)
# 添加学生
def add_student(self):
name = simpledialog.askstring("添加学生", "请输入姓名:")
age = simpledialog.askinteger("添加学生", "请输入年龄:")
score = simpledialog.askinteger("添加学生", "请输入成绩:")
if name and age and score:
student = Student(name, age, score)
self.students.append(student)
self.listBox.insert(END, student.name)
# 删除学生
def del_student(self):
selected = self.listBox.curselection()
if not selected:
messagebox.showwarning("删除学生", "请先选择要删除的学生!")
return
for index in selected[::-1]:
del self.students[index]
self.listBox.delete(index)
# 显示学生详细信息
def show_detail(self, event):
selected = self.listBox.curselection()
if not selected:
return
index = selected[0]
student = self.students[index]
messagebox.showinfo("学生详细信息", f"姓名:{student.name}\n年龄:{student.age}\n成绩:{student.score}")
if __name__ == "__main__":
root = Tk()
app = StudentManagement(root)
root.mainloop()
```
这个程序使用 Tkinter 模块编写,实现了一个带有菜单和多选列表框的学生管理系统。菜单包括添加学生和删除学生两个选项,多选列表框显示学生列表,点击列表中的学生可以显示该学生的详细信息。用户可以通过添加学生选项添加新的学生,也可以通过删除学生选项删除已有的学生。
阅读全文