本文主要是介绍基于tkinter实现学生管理系统(三),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
学生信息管理系统-添加学生
代码实现
在上一节中的class StudentManagerApp中添加如下方法:
# 添加学生信息def add_student(self):# 创建一个新的Toplevel窗口top = tk.Toplevel(self.root)top.title("添加学生")# 设置弹窗在主窗口的中间位置top.update_idletasks()width = 300height = 200x = (self.root.winfo_width() // 2) - (width // 2) + self.root.winfo_x()y = (self.root.winfo_height() // 2) - (height // 2) + self.root.winfo_y()top.geometry(f"{width}x{height}+{x}+{y}")# 输入框tk.Label(top, text="姓名:").grid(row=0, column=0, padx=5, pady=5)tk.Label(top, text="年龄:").grid(row=1, column=0, padx=5, pady=5)tk.Label(top, text="性别:").grid(row=2, column=0, padx=5, pady=5)name_var = tk.StringVar()age_var = tk.IntVar()gender_var = tk.StringVar()tk.Entry(top, textvariable=name_var).grid(row=0, column=1, padx=5, pady=5)tk.Entry(top, textvariable=age_var, validate="key",validatecommand=(top.register(self.validate_age), '%P')).grid(row=1, column=1, padx=5, pady=5)tk.Entry(top, textvariable=gender_var).grid(row=2, column=1, padx=5, pady=5)# 确定按钮def ok():if name_var.get() and age_var.get() and gender_var.get():id_ = len(self.students) + 1self.students.append((id_, name_var.get(), age_var.get(), gender_var.get()))self.tree.insert("", "end", values=(id_, name_var.get(), age_var.get(), gender_var.get()))top.destroy() # 关闭对话框tk.Button(top, text="确定", command=ok).grid(row=3, column=0, columnspan=2, pady=10)# 年龄验证def validate_age(self, new_text):try:value = int(new_text)if value < 0:return Falsereturn Trueexcept ValueError:return False
添加方法后,需要在“添加学员”按钮上调用此函数
tk.Button(btn_frame, text="添加学员", command=self.add_student).pack(side=tk.LEFT, padx=(0, 10))
这篇关于基于tkinter实现学生管理系统(三)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!