前言
上一节,我们实现了添加学生信息的功能,在明细窗体中输入的学生信息并添加到总列表中,与此同时在主窗体的表格中能自动刷新添加的数据。作为一个学生信息管理系统除了具备添加信息的功能,同时也要能够完成修改、删除以及最后的数据保存并写入到文件的功能。
一、修改学生信息
我们有了前面查看学生信息、添加学生信息的操作基础,修改学生信息的功能实现起来就不难了。
操作逻辑:
我们执行修改学生信息的操作逻辑是:
1. 数据载入明细窗体
首先我们要做的是:点击修改按钮载入明细窗体的时候,相应的信息应当被填充进明细窗体中。我们需要在明细窗体的代码中找到load_windows_flag函数,在self.fiag == 3的条件分支下,调用load_student_detail方法加载学生数据。
# 填充数据
self.load_student_detail()
同时在明细窗体的修改模式下,我们设置学号不允许修改:
# 学号不允许修改
self.Entry_sno["state"] = DISABLED
我们修改窗体的时,主窗体应当能获取到选中的学生信息,这样调用明细窗体的时候才会有数据显示。主窗体中修改学生信息对应的方法是update_student,我们对该函数进行完善,我们需要获取某一行的学生数据:
def update_student(self):
self.action_flag = 3
item = self.Tree.selection()[0]
Temp_student_list = self.Tree.item(item, "values")
# 遍历获得完整学生明细信息
for item in self.all_student_list:
if item[0] == Temp_student_list[0]:
self.current_student_list = item
#载入窗体
self.load_detail_window()
现在已经完成了,指定学生明细信息的载入,以及窗体状态的修改。
效果演示:
明细窗体载入学生信息,除学号外均可修改