python期末-使用tkinter制作的学生成绩管理

期末已至,大家是不是在忙着制作期末项目。

这是我最近才做出来的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)

后续代码比较多,就不一一展示

有需要的小伙伴私信我或者通过链接下载

欢迎各位的评论和指正

gitee链接

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值