在python中用tkinter设计一个学生通讯录,可以添加、删除、查看、修改、查找里面信息
4条回答 默认 最新
瞬间的未来式 2023-06-21 11:50关注该回答引用chatgpt:

import tkinter as tk from tkinter import simpledialog, messagebox class StudentContactApp: def __init__(self): self.root = tk.Tk() self.root.title("学生通讯录") self.students = [] self.create_widgets() def create_widgets(self): # 查找框和按钮 search_frame = tk.Frame(self.root) search_frame.pack(pady=10) self.search_entry = tk.Entry(search_frame) self.search_entry.pack(side=tk.LEFT, padx=5) search_button = tk.Button(search_frame, text="搜索", command=self.search_student) search_button.pack(side=tk.LEFT) # 学生信息显示框(使用带滚动条的Listbox) frame = tk.Frame(self.root) frame.pack(pady=10) scrollbar = tk.Scrollbar(frame) scrollbar.pack(side=tk.RIGHT, fill=tk.Y) self.student_listbox = tk.Listbox(frame, width=40, yscrollcommand=scrollbar.set) self.student_listbox.pack(side=tk.LEFT) scrollbar.config(command=self.student_listbox.yview) # 添加按钮 add_button = tk.Button(self.root, text="添加学生", command=self.add_student) add_button.pack(pady=5) # 删除按钮 delete_button = tk.Button(self.root, text="删除学生", command=self.delete_student) delete_button.pack(pady=5) # 修改按钮 edit_button = tk.Button(self.root, text="修改学生", command=self.edit_student) edit_button.pack(pady=5) # 显示全部学生按钮 show_all_button = tk.Button(self.root, text="显示全部学生", command=self.show_all_students) show_all_button.pack(pady=5) def add_student(self): student_name = simpledialog.askstring("添加学生", "请输入学生姓名:") if student_name: student_contact = simpledialog.askstring("添加学生", "请输入学生联系方式:") if student_contact: student = {"姓名": student_name, "联系方式": student_contact} self.students.append(student) self.student_listbox.insert(tk.END, f"{student_name} - {student_contact}") def delete_student(self): selected_index = self.student_listbox.curselection() if selected_index: confirm = messagebox.askokcancel("删除学生", "确认删除所选学生?") if confirm: student = self.students.pop(selected_index[0]) self.student_listbox.delete(selected_index) messagebox.showinfo("删除成功", f"已删除学生: {student['姓名']} - {student['联系方式']}") def edit_student(self): selected_index = self.student_listbox.curselection() if selected_index: student = self.students[selected_index[0]] new_name = simpledialog.askstring("修改学生", "请输入新的学生姓名:", initialvalue=student['姓名']) if new_name: new_contact = simpledialog.askstring("修改学生", "请输入新的学生联系方式:", initialvalue=student['联系方式']) if new_contact: student['姓名'] = new_name student['联系方式'] = new_contact self.student_listbox.delete(selected_index) self.student_listbox.insert(selected_index, f"{new_name} - {new_contact}") messagebox.showinfo("修改成功", f"学生信息已修改为: {new_name} - {new_contact}") def search_student(self): search_term = self.search_entry.get() if not search_term: self.show_all_students() return self.student_listbox.delete(0, tk.END) matching_students = [] for student in self.students: if search_term.lower() in student['姓名'].lower() or search_term in student['联系方式']: matching_students.append(student) if matching_students: for student in matching_students: self.student_listbox.insert(tk.END, f"{student['姓名']} - {student['联系方式']}") else: messagebox.showinfo("查找结果", "未找到匹配的学生。") def show_all_students(self): self.student_listbox.delete(0, tk.END) for student in self.students: self.student_listbox.insert(tk.END, f"{student['姓名']} - {student['联系方式']}") def run(self): self.root.mainloop() # 创建学生通讯录应用程序并运行 app = StudentContactApp() app.run()本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报