添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议 》和 《 阿里云开发者社区知识产权保护指引 》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单 进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

关于“学生信息管理系统”的基本思路和详细过程,请看V1.0版本:



关于“学生信息管理系统”的非GUI进阶版本,请看V2.0版本:

下面是 GUI界面 的V3.0版本,同时包含学生信息的写入文件。

先给大家展示的是GUI可视化的大致实现思路

image

本程序的GUI界面可视化是使用了python的 tkinter 库(下面称thinter为tk)

①下面介绍如何初始化GUI界面

界面主要是使用了tk.label 和 tk.entry(代码即注释)

1. # 关于gui的代码, 用方法封装比较困难,
2. #   此处利用if __name__ == '__main__' , 方便代码折叠, ”阅读”全局思路
3. if __name__ == '__main__':
4. # 以下代码全部为gui界面的初始化
6. # 第1步,实例化对象,建立窗口window
7.     window = tk.Tk()
8. # 第2步,给窗口的可视化起名字
9.     window.title('学生信息管理系统 V6.1')  # 学生信息管理系统6 - 1
10. # 第3步,设定窗口的大小(长 * 宽)
11.     window.geometry('500x650')
13. # tk.StringVar()用于接收用户输入
14.     result = tk.StringVar()
15.     result.set(" ")
17. # ①关于姓名的 label 和 entry
18.     textName = tk.StringVar()
19.     textName.set("")
20.     labelLine1 = tk.Label(window, text="姓     名:", font=('Arial', 15), width=10).place(x=75, y=50, anchor='nw')
21.     entryLine1 = tk.Entry(window, show=None, font=('宋体', 15), textvariable=textName, width=20)
22.     entryLine1.place(x=190, y=50, anchor='nw')  # 显示成明文形式
24. # ②关于性别的 label 和 entry
25.     textSex = tk.StringVar()
26.     textSex.set("")
27.     labelLine2 = tk.Label(window, text="性     别:", font=('Arial', 15), width=10)
28.     labelLine2.place(x=75, y=100, anchor='nw')
29.     entryLine2 = tk.Entry(window, show=None, font=('Arial', 15), textvariable=textSex, width=18)
30.     entryLine2.place(x=190, y=100, anchor='nw')
32. # ③关于电话的 label 和 entry
33.     textPhone = tk.StringVar()
34.     textPhone.set("")
35.     labelLine3 = tk.Label(window, text="电     话:", font=('Arial', 15), width=10).place(x=75, y=150, anchor='nw')
36.     entryLine3 = tk.Entry(window, show=None, font=('Arial', 15), textvariable=textPhone, width=18)
37.     entryLine3.place(x=190, y=150, anchor='nw')
39. # 关于"添加"组件,此处绑定函数addStudentsMessage()用于添加学生信息
40.     button1_add = tk.Button(window, text='添   加', bg='silver', font=('Arial', 12), command=addStudentsMessage, width=8)
41.     button1_add.place(x=40, y=220, anchor='nw')
42. # 关于"删除"组件,此处绑定函数deleteMessage()用于删除学生信息
43.     button2_delete = tk.Button(window, text='删   除', bg='silver', font=('Arial', 12), command=deleteMessage, width=8)
44.     button2_delete.place(x=150, y=220, anchor='nw')
45. # 关于"修改"组件,此处绑定函数change()用于修改学生信息
46.     button3_change = tk.Button(window, text='修   改', bg='silver', font=('Arial', 12), command=change, width=8)
47.     button3_change.place(x=260, y=220, anchor='nw')
48. # 关于"显示"组件,此处绑定函数show()用于显示学生信息
49.     button4_show = tk.Button(window, text='显   示', bg='silver', font=('Arial', 12), command=show, width=8)
50.     button4_show.place(x=370, y=220, anchor='nw')
51. # 下边两行代码是在gui界面显示我的学号和姓名
52.     labelLine_Name = tk.Label(window, text="许梓璘", font=('宋体', 13), width=10).place(x=130, y=260, anchor='nw')
53.     labelLine_myID = tk.Label(window, text="2109059342", font=('宋体', 13), width=10).place(x=250, y=260, anchor='nw')
55.     show_result = tk.Label(window, bg="white", fg="black", font=("宋体", 12), bd='0', anchor='nw', textvariable=result)
56.     show_result.place(x="25", y="300", width="450", height="300")
58.     window.mainloop()

②实现可视化之后,原来V1.0和V2.0版本输出(print)的提示信息和获取用户输入(input),不再适用,此时要采用tk. StringVar ().set()设置GUI界面的文本框展示信息以及tk.StringVar().get()获取用户在GUI界面输入的文本内容

(注意此处获取到的文本内容,均为StringVar类型而并非String,这是不可变数据类型),其余实现思路均类似于V2.0版本(此处以“修改学生信息”功能为例)

1. # 3、修改学生信息
2. def change():
3. if LIST is None:
4.         result.set("没有信息,无法修改")
5. return None
6. if len(LIST) == 0:
7.         result.set("没有信息,无法修改")
8. return None
9. if len(LIST) != 0:
10.         inputName = textName.get()
11. for i in range(0, len(LIST)):
12. if LIST[i]["name"] == inputName:
13.                 LIST[i]["sex"] = textSex.get()
14.                 LIST[i]["phone"] = textSex.get()
15.                 writeTxt_wMode(LIST)
16.                 result.set("修改成功")
18.                 delete_Gui_StudentMessage()
19. return

③展示GUI界面实现结果

image