import tkinter as tk
import tkinter.messagebox
class windows:
def __init__(self, master, student):
self.master = master
self.student = student
self.lbl = tk.Label(self.master, text='欢迎使用学生信息管理系统', font=('microsoft yahei', 15),
fg='DarkViolet')
self.lbl.place(x=80, y=0)
self.lbl1 = tk.Label(self.master, text='请操作:', font=('microsoft yahei', 15),
fg='DarkViolet')
self.lbl1.place(x=40, y=30)
self.f1 = None
self.createWidgest()
def createWidgest(self):
if self.f1:
self.f1.destroy()
self.f1 = tk.Frame(self.master)
self.f1['width'] = 400
self.f1['height'] = 300
self.btn1 = tk.Button(self.f1, text='增加学生信息', font=('microsoft yahei', 12),
width=23, fg='DarkViolet', command=self.add_info)
self.btn1.config(bg='skyblue')
self.btn1.place(x=80, y=0)
self.btn2 = tk.Button(self.f1, text='修改学生信息', font=('microsoft yahei', 12),
width=23, fg='DarkViolet', command=self.modify_info)
self.btn2.config(bg='skyblue')
self.btn2.place(x=80, y=50)
self.btn3 = tk.Button(self.f1, text='删除学生信息', font=('microsoft yahei', 12),
width=23, fg='DarkViolet', command=self.delete_info)
self.btn3.config(bg='skyblue')
self.btn3.place(x=80, y=100)
self.btn4 = tk.Button(self.f1, text='查询学生信息', font=('microsoft yahei', 12),
width=23, fg='DarkViolet', command=self.search_info)
self.btn4.config(bg='skyblue')
self.btn4.place(x=80, y=150)
self.btn5 = tk.Button(self.f1, text='显示所有学生信息', font=('microsoft yahei', 12),
width=23, fg='DarkViolet', command=self.display)
self.btn5.config(bg='skyblue')
self.btn5.place(x=80, y=200)
self.f1.place(x=0, y=80)
def add_info(self):
"""添加学生信息"""
if self.f1:
self.f1.destroy()
self.f1 = tk.Frame(self.master)
self.f1['width'] = 400
self.f1['height'] = 300
self.lf = tk.LabelFrame(self.f1, text='添加学生信息')
# 输入框:姓名 学号 年龄 手机号码
self.sName = tk.Label(self.lf, text='姓名')
self.sName.pack()
self.sName_entry = tk.Entry(self.lf)
self.sName_entry.pack()
self.sNo = tk.Label(self.lf, text='学号')
self.sNo.pack()
self.sNo_entry = tk.Entry(self.lf)
self.sNo_entry.pack()
self.sAge = tk.Label(self.lf, text='年龄')
self.sAge.pack()
self.sAge_enyry = tk.Entry(self.lf)
self.sAge_enyry.pack()
self.tele_num = tk.Label(self.lf, text='手机号')
self.tele_num.pack()
self.tele_num_entry = tk.Entry(self.lf)
self.tele_num_entry.pack()
def cmd1():
self.student.add_student(self.sName_entry.get(),
self.sNo_entry.get(),
self.sAge_enyry.get(),
self.tele_num_entry.get())
self.sName_entry.delete(0, 'end')
self.sNo_entry.delete(0, 'end')
self.sAge_enyry.delete(0, 'end')
self.tele_num_entry.delete(0, 'end')
self.btn1 = tk.Button(self.lf, text='返回', command=self.createWidgest)
self.btn1.pack(side='left')
self.btn2 = tk.Button(self.lf, text='确定', command=cmd1)
self.btn2.pack(side='right')
self.lf.place(x=130, y=40)
self.f1.place(x=0, y=80)
def modify_info(self):
"""修改学生信息"""
if self.f1:
self.f1.destroy()
self.f1 = tk.Frame(self.master)
self.f1['width'] = 400
self.f1['height'] = 300
self.lf = tk.LabelFrame(self.f1, text='修改学生信息')
self.index1 = -1
# 检索学号是否存在
def cmd2(sno):
if sno == '':
tk.messagebox.showinfo('提示', '请输入学号!')
else:
self.index1 = self.student.judge(sno)
self.old_sNo = tk.Label(self.lf, text='学号')
self.old_sNo.pack()
self.old_sNo_entry = tk.Entry(self.lf)
self.old_sNo_entry.pack()
self.btn = tk.Button(self.lf, text='检索', command=lambda: cmd2(self.old_sNo_entry.get()))
self.btn.pack()
# 修改信息
self.sName = tk.Label(self.lf, text='姓名')
self.sName.pack()
self.sName_entry = tk.Entry(self.lf)
self.sName_entry.pack()
self.sNo = tk.Label(self.lf, text='学号')
self.sNo.pack()
self.sNo_entry = tk.Entry(self.lf)
self.sNo_entry.pack()
self.sAge = tk.Label(self.lf, text='年龄')
self.sAge.pack()
self.sAge_enyry = tk.Entry(self.lf)
self.sAge_enyry.pack()
self.tele_num = tk.Label(self.lf, text='手机号')
self.tele_num.pack()
self.tele_num_entry = tk.Entry(self.lf)
self.tele_num_entry.pack()
def cmd():
self.student.modify_student(self.index1,
self.sName_entry.get(),
self.sNo_entry.get(),
self.sAge_enyry.get(),
self.tele_num_entry.get())
self.old_sNo_entry.delete(0, 'end')
self.sName_entry.delete(0, 'end')
self.sNo_entry.delete(0, 'end')
self.sAge_enyry.delete(0, 'end')
self.tele_num_entry.delete(0, 'end')
self.btn1 = tk.Button(self.lf, text='返回', command=self.createWidgest)
self.btn1.pack(side='left')
self.btn2 = tk.Button(self.lf, text='确定', command=lambda: cmd())
self.btn2.pack(side='right')
self.lf.place(x=130, y=0)
self.f1.place(x=0, y=80)
def delete_info(self):
"""删除学生"""
if self.f1:
self.f1.destroy()
self.f1 = tk.Frame(self.master)
self.f1['width'] = 400
self.f1['height'] = 300
self.lf = tk.LabelFrame(self.f1, text='删除学生信息')
self.index1 = -1
# 检索学号是否存在
def cmd2(sno):
if sno == '':
tk.messagebox.showinfo('提示', '请输入学号!')
else:
self.index1 = self.student.judge(sno)
self.old_sNo = tk.Label(self.lf, text='学号')
self.old_sNo.pack()
self.old_sNo_entry = tk.Entry(self.lf)
self.old_sNo_entry.pack()
self.btn = tk.Button(self.lf, text='检索', command=lambda: cmd2(self.old_sNo_entry.get()))
self.btn.pack(side='left')
self.btn1 = tk.Button(self.lf, text='删除', command=lambda: self.student.delete_student(self.index1))
self.btn1.pack(side='right')
self.btn2 = tk.Button(self.lf, text='返回', command=self.createWidgest)
self.btn2.pack()
self.lf.place(x=130, y=0)
self.f1.place(x=0, y=80)
def search_info(self):
"""查找学生"""
if self.f1:
self.f1.destroy()
self.f1 = tk.Frame(self.master)
self.f1['width'] = 400
self.f1['height'] = 300
self.lf = tk.LabelFrame(self.f1, text='搜索学生信息')
self.index1 = -1
# 检索学号是否存在
def cmd3(sno):
self.student.search_student(sno)
self.sNo = tk.Label(self.lf, text='学号')
self.sNo.pack()
self.sNo_entry = tk.Entry(self.lf)
self.sNo_entry.pack()
self.btn = tk.Button(self.lf, text='返回', command=self.createWidgest)
self.btn.pack(side='left')
self.btn1 = tk.Button(self.lf, text='�