前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python面向对象与GUI编程打造【万能信息管理系统】,包含登录界面(修改参数就能变成你想要的系统)

Python面向对象与GUI编程打造【万能信息管理系统】,包含登录界面(修改参数就能变成你想要的系统)

作者头像
松鼠爱吃饼干
发布2021-11-16 12:44:03
1.5K1
发布2021-11-16 12:44:03
举报
文章被收录于专栏:Python分享

前言

使用面向对象与GUI编程,打造一个桌面版的万能信息管理系统。只要你修改下参数,它就能变成你想要的样子。比如:学生信息管理系统、员工信息管理系统、图书信息管理系统、蔬菜信息管理系统。这真是毕业设计、期末作业必备良药,老师看过都说好

先看下实现的效果

先是登录界面

输入设定好的账号密码后所显示的页面

登录窗口

先定义一个窗口对象

代码语言:javascript
复制
import tkinter

root = tkinter.Tk()

设置标题

代码语言:javascript
复制
root.title('学生信息管理系统')
root.geometry('300x180')

显示窗口

代码语言:javascript
复制
root.mainloop()

账户密码输入界面

代码语言:javascript
复制
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)

调整位置

代码语言:javascript
复制
tkinter.Label(login_frame, width=15).grid(row=0, column=0)

点击登录 校验参数

代码语言:javascript
复制
def check_login():
    print('检查登录')
    print('用户名:', username.get())
    print('密码:', password.get())
    # 数据存在那个地方 txt
    if username.get() == 'admin' and password.get() == '123456':
        print('登录成功')
    else:
        print('登录失败')

换页

代码语言:javascript
复制
login_frame = tkinter.Frame(root)
login_frame.grid()


if username.get() == 'admin' and password.get() == '123456':
    print('登录成功')
    # 换页
    login_frame.destroy()
else:
    print('登录失败')

系统显示页面

窗口

代码语言:javascript
复制
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()

设置菜单栏

代码语言:javascript
复制
    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  # 设置菜单栏

录入功能

界面

代码语言:javascript
复制
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):
        # padding 边框 填充
        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)

录入数据

代码语言:javascript
复制
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())
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 松鼠爱吃饼干 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 先看下实现的效果
  • 登录窗口
    • 先定义一个窗口对象
      • 设置标题
        • 显示窗口
          • 账户密码输入界面
            • 调整位置
              • 点击登录 校验参数
                • 换页
                  • 窗口
                  • 设置菜单栏
                  • 界面
                  • 录入数据
              • 系统显示页面
              • 录入功能
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档