期末已至,大家是不是在忙着制作期末项目。
这是我最近才做出来的python的成绩管理系统,比起初学的时候有了一点点进步。部分代码还有问题,冗余也非常严重,希望大家根据自己的需求选择和修改,代码链接我放在最后,有需要可以自行下载。
先上图
内容展示
首页登录窗口
通过登录验证后,清空了首页的所有组件,跳转到了新的一个frame,这个是由ttk的notebook制作的。
检索之后,信息会在下面显示。删除界面的和这个界面类似,多了个按钮,跳转删除等操作。就不做展示。
代码展示
代码很多地方可以进行修改和完善,因为忙着交作业,就只顾着完成,没有进行修改。
导入库
这里用到了tkinter.ttk,主要用于界面的notebook的制作
还有ttknoostrap,主要用于界面的美化,按钮的修改等
import json
from tkinter import *
from tkinter.ttk import *
from tkinter.messagebox import *
from ttkbootstrap.constants import *
主执行函数
if __name__ == '__main__':
msg = {}
root = Tk()
root.geometry('400x400+200+300')
root.title('学生成绩管理系统')
scr = Screen(master=root)
root.mainloop()
登录页面的代码
这里主要是用于页面的绘制
def login(self):
self.label_f = LabelFrame(root, borderwidth=0)
self.headline = Label(self.label_f, text='成绩管理系统', font='Helvetic 30', )
self.headline.grid(row=0, column=0, columnspan=4, pady=30)
self.account = Label(self.label_f, text='Account', font=16)
self.account.grid(row=1, column=1, pady=20)
self.account_put = Entry(self.label_f)
self.account_put.grid(row=1, column=2)
self.password = Label(self.label_f, text='Password', font=16)
self.password.grid(row=2, column=1)
self.password_put = Entry(self.label_f)
self.password_put.grid(row=2, column=2)
self.login_btn = Button(self.label_f, text='登录', bootstyle='primary', command=self.veri)
self.login_btn.grid(row=3, column=1, columnspan=3, pady=20, ipadx=10, ipady=3)
self.label_f.pack()
验证并清空界面
def veri(self):
if self.account_put.get() == 'admin' and self.password_put.get() == '123456':
showinfo(title='登录', message='登录成功')
self.label_f.destroy()
self.notebooks()
else:
showerror(title='登录', message='账号或者密码错误')
showinfo(title='提示',message='账号:admin\n密码:123456')
选项卡组件模块
def notebooks(self):
self.notebook = Notebook(root, padding=10, bootstyle='info')
# 创建选项卡组件
self.addition = Frame(height=250)
self.show = Frame(height=250)
self.search = Frame()
self.delete = Frame()
self.notebook.add(self.addition, text='添加学生')
self.notebook.add(self.show, text='显示信息')
self.notebook.add(self.search, text='查找信息')
self.notebook.add(self.delete, text='删除信息')
self.notebook.pack(fill=BOTH)
self.addition_f()
self.search_f()
# 调用信息显示
self.show_f()
self.delete_f()
信息的添加组件
def addition_f(self):
self.block = Label(self.addition, text=' ').grid(row=0, column=0)
self.name_l = Label(self.addition, text='姓名')
self.name_p = Entry(self.addition, )
self.num_l = Label(self.addition, text='学号')
self.num_p = Entry(self.addition, )
self.sex = StringVar()
self.sex.set('男')
self.sex_l = Label(self.addition, text='性别')
self.sex_m = Radiobutton(self.addition, text='男', value='男', variable=self.sex)
self.sex_f = Radiobutton(self.addition, text='女', value='女', variable=self.sex)
self.math_l = Label(self.addition, text='数学成绩')
self.math_p = Entry(self.addition, )
self.lang_l = Label(self.addition, text='语文成绩')
self.lang_p = Entry(self.addition, )
self.python_l = Label(self.addition, text='python成绩')
self.python_p = Entry(self.addition, )
# 显示
self.name_l.grid(row=1, column=1, padx=20, pady=10)
self.name_p.grid(row=1, column=2, columnspan=2)
self.num_l.grid(row=2, column=1, padx=20, pady=10)
self.num_p.grid(row=2, column=2, columnspan=2)
self.sex_l.grid(row=3, column=1, padx=20, pady=10)
self.sex_m.grid(row=3, column=2)
self.sex_f.grid(row=3, column=3)
self.math_l.grid(row=4, column=1, padx=20, pady=10)
self.math_p.grid(row=4, column=2, columnspan=2)
self.lang_l.grid(row=5, column=1, padx=20, pady=10)
self.lang_p.grid(row=5, column=2, columnspan=2)
self.python_l.grid(row=6, column=1, padx=20, pady=10)
self.python_p.grid(row=6, column=2, columnspan=2)
self.add_btn = Button(self.addition, text='确认添加', bootstyle="primary", command=self.save_v)
self.add_btn.grid(row=7, column=1, columnspan=3, pady=20)
后续代码比较多,就不一一展示
有需要的小伙伴私信我或者通过链接下载
欢迎各位的评论和指正