python学生姓名添加删除_Python GUI项目实战(七)学生信息的修改、删除和保存...

前言

上一节,我们实现了添加学生信息的功能,在明细窗体中输入的学生信息并添加到总列表中,与此同时在主窗体的表格中能自动刷新添加的数据。作为一个学生信息管理系统除了具备添加信息的功能,同时也要能够完成修改、删除以及最后的数据保存并写入到文件的功能。

一、修改学生信息

我们有了前面查看学生信息、添加学生信息的操作基础,修改学生信息的功能实现起来就不难了。

操作逻辑:

我们执行修改学生信息的操作逻辑是:

4a8afc484a867a06176ce30663b8e475.png

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()

现在已经完成了,指定学生明细信息的载入,以及窗体状态的修改。

效果演示:

a173ba7c5757977440f457017ac41e8d.png

明细窗体载入学生信息,除学号外均可修改

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学生信息管理系统是一种常见的应用场景,为了更好地操作这个系统,需要通过一个登录窗体,验证用户身份,进行后续的操作。本文将介绍如何使用Python的Tkinter模块来实现学生信息管理系统的登录窗体设计与实现。 1. 窗体的设计 为了让我们的登录窗体更加美观、易使用、易维护,我们应该注重窗体的设计细节。比如,我们需要将窗体元素排列得整整齐齐,精确地定义控件的大小和位置,调整字体颜色和大小以增加可读性等。 首先,在设计窗体时,我们可以先考虑窗体的框架。我们可以通过Tkinter中的Toplevel控件创建一个新的窗口。在窗口的顶部设置一个标签,作为窗口的标题,方便用户理解窗体的用途。在窗口的中央添加一个标签,用来提示用户输入用户名和密码,以及显示登录信息。下方添加2个文本框控件,一个用于输入用户名,另一个用于输入密码。左下角和右下角各添加一个按钮,左边的按钮用来实现登录功能,右边的按钮实现退出功能。 2. 窗体的实现 在得到我们期望的设计后,我们可以开始实现窗体。我们可以定义窗体的大小和标题,在构造函数中添加所有需要的控件,为窗体元素设置样式和属性,以及处理窗体的事件。 import tkinter as tk class LoginForm(tk.Toplevel): def __init__(self): tk.Toplevel.__init__(self) self.geometry("300x150") self.title("登录") # 窗体元素 self.username_label = tk.Label(self, text="用户名:") self.username_label.grid(row=0, column=0, padx=5, pady=5, sticky=tk.W) self.username_entry = tk.Entry(self) self.username_entry.grid(row=0, column=1, padx=5, pady=5) self.password_label = tk.Label(self, text="密码:") self.password_label.grid(row=1, column=0, padx=5, pady=5, sticky=tk.W) self.password_entry = tk.Entry(self, show="*") self.password_entry.grid(row=1, column=1, padx=5, pady=5) self.message_label = tk.Label(self, text="", fg="red") self.message_label.grid(row=2, column=0, columnspan=2, padx=5, pady=10) self.login_button = tk.Button(self, text="登录", command=self.validate) self.login_button.grid(row=3, column=0, padx=5, pady=5, sticky=tk.W) self.exit_button = tk.Button(self, text="退出", command=self.destroy) self.exit_button.grid(row=3, column=1, padx=5, pady=5, sticky=tk.E) def validate(self): # TODO: 验证用户名和密码 pass if __name__ == "__main__": login_form = LoginForm() login_form.mainloop() 在上面的示例代码中,我们创建了一个LoginForm类,继承自Toplevel类。在构造函数中,定义了所有需要的窗体元素,包括标签、文本框和按钮。为了使窗体元素的排列更加整齐,我们使用了网格布局管理器,通过row和column属性指定了控件所在的行和列,padx和pady则控制控件之间的间距。sticky属性指定了控件在行和列中的对齐方式。例如,sticky=W表示控件靠左对齐。 在validate()函数中,我们可以编写用户身份验证的代码。在这个例子中,我们暂时没有编写任何代码,只是留下了一个注释用来提醒我们要完成这个功能。 最后,在if __name__ == "__main__"中,我们创建LoginForm对象并进入事件循环,显示窗体。 以上就是Python Gui项目实战(二)学生信息管理系统:登录窗体的设计与实现。我们可以根据实际需要添加更多的控件和事件来实现更完整的学生信息管理系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值