前言
使用面向对象与GUI编程,打造一个桌面版的万能信息管理系统。只要你修改下参数,它就能变成你想要的样子。比如:学生信息管理系统、员工信息管理系统、图书信息管理系统、蔬菜信息管理系统。这真是毕业设计、期末作业必备良药,老师看过都说好
先看下实现的效果
先是登录界面
输入设定好的账号密码后所显示的页面
主页左侧可以免费领取【代码】【相关教程、资料】,或者对于本篇文章有疑问的同学可以私信我
登录窗口
先定义一个窗口对象
import tkinter
root = tkinter.Tk()
###设置标题
root.title('学生信息管理系统')
root.geometry('300x180')
###显示窗口
root.mainloop()
账户密码输入界面
tkinter.Label(login_frame, text='账户: ').grid(row=1, column=0)
tkinter.Entry(login_frame, textvariable=username).grid(row=1, column=1)
tkinter.Label(login_frame, text='密码: ').grid(row=2, column=0)
tkinter.Entry(login_frame, textvariable=password).grid(row=2, column=1)
tkinter.Button(login_frame, text='登录', command=check_login).grid(row=3, column=0)
tkinter.Button(login_frame, text='退出', command=root.quit).grid(row=3, column=1)
调整位置
tkinter.Label(login_frame, width=15).grid(row=0, column=0)
点击登录 校验参数
def check_login():
print('检查登录')
print('用户名:', username.get())
print('密码:', password.get())
if username.get() == 'admin' and password.get() == '123456':
print('登录成功')
else:
print('登录失败')
换页
login_frame = tkinter.Frame(root)
login_frame.grid()
if username.get() == 'admin' and password.get() == '123456':
print('登录成功')
login_frame.destroy()
else:
print('登录失败')
系统显示页面
窗口
import tkinter
class MainPage:
def __init__(self, root2):
self.root = root2
self.root.title('学生信息管理系统 v18.6.0')
self.root.geometry('600x400')
self.create_page()
root = tkinter.Tk()
MainPage(root)
root.mainloop()
设置菜单栏
def create_page(self):
menu_bar = tkinter.Menu(self.root)
menu_bar.add_command(label='录入', command=self.show_insert_frame)
menu_bar.add_command(label='查询', command=self.show_search_frame)
menu_bar.add_command(label='删除')
menu_bar.add_command(label='修改')
menu_bar.add_command(label='关于', command=self.show_about_frame)
self.root['menu'] = menu_bar
录入功能
界面
class InsertFrame(tkinter.Frame):
def __init__(self, root):
super().__init__(master=root)
self.username = tkinter.StringVar()
self.math = tkinter.StringVar()
self.chinese = tkinter.StringVar()
self.english = tkinter.StringVar()
self.status = tkinter.StringVar()
self.create_page()
def create_page(self):
tkinter.Label(self, width=15).grid(row=0, column=0, padx=5, pady=5, )
tkinter.Label(self, text='姓名: ').grid(row=1, column=0, padx=5, pady=5, )
tkinter.Entry(self, textvariable=self.username).grid(row=1, column=1, padx=5, pady=5, )
tkinter.Label(self, text='数学: ').grid(row=2, column=0, padx=5, pady=5, )
tkinter.Entry(self, textvariable=self.math).grid(row=2, column=1, padx=5, pady=5, )
tkinter.Label(self, text='语文: ').grid(row=3, column=0, padx=5, pady=5, )
tkinter.Entry(self, textvariable=self.chinese).grid(row=3, column=1, padx=5, pady=5, )
tkinter.Label(self, text='英语: ').grid(row=4, column=0, padx=5, pady=5, )
tkinter.Entry(self, textvariable=self.english).grid(row=4, column=1, padx=5, pady=5, )
tkinter.Button(self, text='录入', command=self._recode).grid(row=5, column=1)
tkinter.Label(self, textvariable=self.status).grid(row=6, column=1)
录入数据
def _recode(self):
print('记录数据的事件被触发了')
stu = {
"name": self.username.get(),
"math": self.math.get(),
"chinese": self.chinese.get(),
"english": self.english.get()
}
db.insert(stu)
self.status.set('数据插入成功')
print(db.all())
|