Python Tkinter实现学生管理系统界面与逻辑详解

何川
何川
发布时间:2026-10-13| 5人浏览过
原创

本文展示基于Python Tkinter构建的学生管理系统完整实现。文章介绍了无需额外安装的Tkinter库用法,提供了界面布局代码及数据表格组件配置方法。通过封装对象与数据库连接,实现了信息的增删改查功能,并附带了界面运行效果及后续优化建议,适合Python初学者参考学习。

本文分享了一个使用Python Tkinter开发的学生管理系统的完整代码示例,供读者参考学习。

Tkinter是Python标准库中自带的用户界面组件包,用户无需单独下载,直接导入即可使用。

关于tkinter的详细文档可参考官方资源()。该文档为英文版本,建议借助翻译工具阅读。

系统运行后的界面效果如下所示:

从视觉效果来看,Python的PC端界面表现尚可,整体风格较为美观。

不过当前页面设计相对粗糙,尚未经过专业的UI美化处理。

在系统架构上,对象封装与数据连接部分沿用了此前控制台版本的设计方案。

控制台版本的系统已经实现了对象封装及数据库连接功能,此处直接复用。

#导入tkinter 包
from tkinter import *
from tkinter import ttk
from com.hc.dao.Connect import *
from com.hc.entity.Student import *

root=Tk()
# 窗口宽高 英文X
root.geometry('600x500')
# 固定窗口
root.resizable(width=False,height=False)
# 窗口标题
root.title('hc king')


# 标签 \ n
Label(root,text='信息管理',bg='white',fg='red',font=('宋体',15)).pack(side=TOP,fill='x')
# 数据表格
#居中
dataTreeview=ttk.Treeview(root,show='headings',column=('sid','sname','sex','sage'))
dataTreeview.column('sid',width=150,anchor="center")
dataTreeview.column('sname',width=150,anchor="center")
dataTreeview.column('sex',width=150,anchor="center")
dataTreeview.column('sage',width=150,anchor="center")


dataTreeview.heading('sid',text='编号')
dataTreeview.heading('sname',text='名称')
dataTreeview.heading('sex',text='性别')
dataTreeview.heading('sage',text='年龄')

bottomFrame=Frame(root)

sidLabel=Label(leftFrame,text='编号:')
snameLabel=Label(leftFrame,text='名称:')
sexLabel=Label(leftFrame,text='性别:')
sageLabel=Label(leftFrame,text='年龄:')

sidEntry=Entry(leftFrame)
snameEntry=Entry(leftFrame)
sexEntry=Entry(leftFrame)
sageEntry=Entry(leftFrame)

sidLabel.grid(row=0,column=0)
sidEntry.grid(row=0,column=1)
snameLabel.grid(row=0,column=2)
snameEntry.grid(row=0,column=3)



sexLabel.grid(row=1,column=0)
sexEntry.grid(row=1,column=1)
sageLabel.grid(row=1,column=2)
sageEntry.grid(row=1,column=3)

insButton=Button(rightFrame,text="添加",command=insert)
insButton.grid(row=0,column=0)
delButton=Button(rightFrame,text="删除",command=delete)
delButton.grid(row=0,column=1)
updButton=Button(rightFrame,text="修改",command=update)
updButton.grid(row=1,column=0)
selButton=Button(rightFrame,text="查询",command=select)
selButton.grid(row=1,column=1)#定位式布局,即坐标


dataTreeview.bind('<<TreeviewSelect>>',treeSel)#为dataTreeview绑定事件
bottomFrame.pack()#组件显示
root.mainloop()#界面运行

上述展示的是系统的主界面布局。

#点击dataTreeview的某一项,就把数据拿到,放进四个输入框内
def treeSel(event):
  item=dataTreeview.selection()
  itemvalues=dataTreeview.item(item,'values')
  clearEntry()
  sidEntry.insert(0,itemvalues[0])
  snameEntry.insert(0, itemvalues[1])
  sexEntry.insert(0, itemvalues[2])
  sageEntry.insert(0, itemvalues[3])

#把四个输入框的数据放进对象
def update():
  student = Student()
  student.stuId = sidEntry.get()
  student.stuName = snameEntry.get()
  student.stuSex = sexEntry.get()
  student.stuAge = sageEntry.get()
  DataBase().updUser(student)
  clearAndall()


#删除dataTreeview里面的数据
def clear():
  clearEntry()
  for item in dataTreeview.get_children():
    dataTreeview.delete(item)


def addAll():
  for o in DataBase().allUser():
    dataTreeview.insert('',0, values=(o[0], o[1], o[2], o[3]))

#清空四个输入框
def clearEntry():
  sidEntry.delete(0, END)
  snameEntry.delete(0, END)
  sexEntry.delete(0, END)
  sageEntry.delete(0, END)

以下是系统运行所需的具体功能方法实现代码。

该系统目前仍有诸多需要改进和完善的地方。

以上就是本文的全部内容,希望对读者的学习有所帮助,也欢迎大家继续支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。