导语
还有最后几个月就毕业了,大学三年咳咳咳也许是四年,一切都结束了哈!最后的这段时间大家都在做什么呢?
回答当然是:“赶毕设了“。
毕业季,这是大学三年最忙的日子,路上行人欲断魂,最怕的就是你问我”**兄弟,毕设做的什么题目”“毕设借鉴一下“你这真 就借鉴一下也行,**我就怕你毕设连标点符号都一摸一样,结果两兄弟一起挂了..............
今天的话小编带哪些忙碌需要速成很急的需要毕设的小伙伴儿——做一个万能的GUI版本的学生信息管理系统。
这系统可是真大众化,每年的话估计选择这个毕设做标题的就一大堆,要不是标题一个班不能重样儿,那的对半分。
正文
项目要求(1):
使用pycharm通过Python的界面包对学生表操作增删改查操作。
附:
# 添加
def insert():
# 获取输入框的值
snameValue=snameEntry.get()
ssexValue=ssexEntry.get()
sageValue=sageEntry.get()
if(snameValue=="" or ssexValue=="" or sageValue==""):
messagebox.showwarning("警告","学生的姓名、性别、年龄不能为空!")
else:
print("添加中......")
sageValue = int(sageEntry.get())
stu.setSage(sageValue)
stu.setSname(snameValue)
stu.setSsex(ssexValue)
bd.addStudent(stu)
# 添加之后重新加载表格数据
fresh()
clearEntry()
print("添加成功!")
# 删除
def delete():
sidValue=sidEntry.get()
if(sidValue!=""):
print("删除中......")
sidValue=int(sidEntry.get())
stu.setSid(sidValue)
bd.delStudent(stu)
# 删除之后刷新数据
fresh()
# 清空输入框
clearEntry()
print("删除成功!")
elif(sidValue==""):
# 用户没有选择任何学生进行删除
messagebox.showwarning("警告","请选择需要删除的学生")
# 修改
def update():
sidValue=sidEntry.get()
if(sidValue!=""):
print("修改中......")
sidValue=int(sidEntry.get())
snameValue = snameEntry.get()
ssexValue = ssexEntry.get()
sageValue = int(sageEntry.get())
stu.setSid(sidValue)
stu.setSname(snameValue)
stu.setSsex(ssexValue)
stu.setSage(sageValue)
bd.updStudent(stu)
fresh()
clearEntry()
print("修改成功!")
elif(sidValue==""):
# 用户没有选择任何学生进行修改
messagebox.showwarning("警告", "请选择需要修改的学生")
# 查询
def select():
print("查询中......")
sidValue= sidEntry.get()
if(sidValue!=""):
sidValue = int(sidEntry.get())
snameValue = snameEntry.get()
ssexValue = ssexEntry.get()
sageValue=sageEntry.get()
if (sageValue!= ""):
sageValue = int(sageEntry.get())
stu.setSid(sidValue)
stu.setSname(snameValue)
stu.setSsex(ssexValue)
stu.setSage(sageValue)
for i in treeView.get_children():
treeView.delete(i)
for i in bd.selectStu(stu):
treeView.insert("", 0, values=(i[0], i[1], i[2], i[3]))
print("查询成功......")
做一个GUI界面(2):
# 实例化一个新窗口
tk=Tk()
# 设置窗口大小
tk.geometry("600x380")
# 设置窗口的标题
tk.title("学生管理系统\n@zs")
# 在窗口中添加标签
label=Label(tk,text="欢迎使用学生管理系统!",bg="#0078D7",fg="black",font=("宋体",18))
# 标签出现在窗口的位置
label.pack(side=TOP,fill="x")
#在窗口中添加数据展示
# 设置show属性为 headings 即可隐藏首列
treeView=ttk.Treeview(tk,show="headings",column=("sid","sname","ssex","sage"))
#数据列表设置属性
treeView.column("sid",width=150,anchor="center")
treeView.column("sname",width=150,anchor="center")
treeView.column("ssex",width=150,anchor="center")
treeView.column("sage",width=150,anchor="center")
#设置表头
treeView.heading("sid",text="编号")
treeView.heading("sname",text="姓名")
treeView.heading("ssex",text="性别")
treeView.heading("sage",text="年龄")
# 初始化加载表格的数据
fresh()
#实例化底部大容器
bottomFrame=Frame(tk)
#实例化底部大容器中的左右两个容器
leftFrame=Frame(bottomFrame)
rightFrame=Frame(bottomFrame)
# 左边容器
sidLadel=Label(leftFrame,text="编号:")
sidEntry=Entry(leftFrame)
snameLadel=Label(leftFrame,text="姓名:")
snameEntry=Entry(leftFrame)
ssexLadel=Label(leftFrame,text="性别:")
ssexEntry=Entry(leftFrame)
sageLadel=Label(leftFrame,text="年龄:")
sageEntry=Entry(leftFrame)
sidLadel.grid(row=0,column=0)
sidEntry.grid(row=0,column=1)
snameLadel.grid(row=0,column=2)
snameEntry.grid(row=0,column=3)
ssexLadel.grid(row=1,column=0)
ssexEntry.grid(row=1,column=1)
sageLadel.grid(row=1,column=2)
sageEntry.grid(row=1,column=3)
# 右边容器
insertBtn=Button(rightFrame,text="添加",command=insert)
deleteBtn=Button(rightFrame,text="删除",command=delete)
updateBtn=Button(rightFrame,text="修改",command=update)
selectBtn=Button(rightFrame,text="查询",command=select)
insertBtn.grid(row=0,column=0)
deleteBtn.grid(row=0,column=1)
updateBtn.grid(row=1,column=0)
selectBtn.grid(row=1,column=1)
# 底部的【一键清空】按钮
clearButton=Button(text="一键清空",command=clearEntry)
#给TreeView添加点击事件
treeView.bind("<<TreeviewSelect>>",treeViewSelect)
# 显示表的信息
treeView.pack()
# 显示左右容器
leftFrame.pack(side=LEFT)
rightFrame.pack(side=RIGHT)
# 显示底部大容器
bottomFrame.pack()
# 显示底部的【一键清空】按钮
clearButton.pack()
# 获取电脑屏幕的宽度和高度
winWidth=tk.winfo_screenwidth()
winHeight=tk.winfo_screenheight()
# 窗口的宽度
tkWidth = 600
tkHeight = 380
# 居中的px
x = (winWidth-tkWidth) / 2
y = (winHeight-tkHeight) / 2
tk.geometry("%dx%d+%d+%d" %(tkWidth,tkHeight,x,y))
# 进入消息循环
tk.mainloop()
效果图:
总结
好了还是学生的话这篇文章可以先收藏着毕业的时候翻出来哈哈哈哈~
很多方面都可以优化的更好这篇文章项目大家都知道很简单2333不知道写啥子了。
源码基地:#959755565#