Python+Tkinter+MySQL带你搭建学生信息管理系统界面

Python+Tkinter+MySQL带你搭建学生信息管理系统界面

码农世界 2024-06-11 后端 89 次浏览 0个评论

一、Tkinter

Tkinter是Python中的一个标准GUI库,用于创建图形用户界面(GUI)。它是基于Tcl/Tk工具包构建的,提供了一种简单而有效的方式来创建应用程序的用户界面。

以下是Tkinter的一些重要特性和组件:

  1. 简单易用:Tkinter提供了简单的API,使得创建GUI应用程序变得容易。它提供了许多用于构建各种GUI元素的类和方法。

  2. 跨平台性:Tkinter是Python标准库的一部分,因此它可以在几乎所有的主流操作系统上运行,包括Windows、macOS和Linux。

  3. 组件丰富:Tkinter提供了许多常用的GUI组件,如按钮、标签、文本框、复选框、单选按钮、列表框、滚动条等,以及各种布局管理器,如pack、grid和place。

  4. 事件驱动:Tkinter是事件驱动的,可以通过绑定事件处理函数来响应用户的操作,例如单击按钮、按下键盘等。

  5. 可扩展性:虽然Tkinter提供了大量的标准组件,但也可以通过自定义组件或使用第三方库来扩展其功能。

Tkinter的工作流程通常包括以下步骤:

  • 创建主窗口(root window):使用Tkinter创建一个主窗口作为整个应用程序的主界面。
  • 添加组件:在主窗口中添加所需的GUI组件,例如按钮、标签、文本框等。
  • 配置组件属性:设置每个组件的属性,如文本内容、大小、位置等。
  • 布局管理:使用布局管理器来安排组件的位置和大小,以确保它们在窗口中正确显示。
  • 事件处理:为需要交互的组件绑定事件处理函数,以响应用户的操作。
  • 运行应用程序:启动事件循环,等待用户与应用程序交互。

    总的来说,Tkinter是Python中创建GUI应用程序的一种方便而强大的方式,特别适用于小型项目或需要快速原型设计的应用程序。

    二、代码实现

    1、登录窗口

    from tkinter import *
    import tkinter.messagebox
    # 导入数据库链接模块
    from connect_mysql import conn
    # 导入学生管理功能模块
    from MainPage import Function
    # 创建数据库操作对象并链接数据库
    cursor = conn.cursor()
    # 创建窗口和函数
    class Main:
        # 窗口初始化
        def __init__(self):
            self.window = Tk()
            self.window.title('学生信息管理系统')
            self.window.geometry('600x400')
            self.window.resizable(False, False)
            self.canvas = Canvas(self.window, height=400, width=600)
            self.bg_image = PhotoImage(file="image/bg1.png")
            self.canvas.pack(side='top')
            self.image = self.canvas.create_image(0, 0, anchor='nw', image=self.bg_image)
            self.lb1 = Label(self.window, text='用户名:', width=10, height=2).place(x=200, y=150)
            self.lb2 = Label(self.window, text='密  码:', width=10, height=2).place(x=200, y=200)
            self.get_user_name = StringVar()
            self.en_user_name = Entry(self.window, textvariable=self.get_user_name)
            self.en_user_name.place(x=260, y=150, height=40)
            self.get_user_pwd = StringVar()
            self.en_user_pwd = Entry(self.window, textvariable=self.get_user_pwd, show='*')
            self.en_user_pwd.place(x=260, y=200, height=40)
            self.bt_login = Button(self.window, text='登录', command=self.user_login, width=10, height=2)
            self.bt_login.place(x=150, y=300)
            self.bt_logup = Button(self.window, text='注册', command=self.user_register, width=10, height=2)
            self.bt_logup.place(x=250, y=300)
            self.bt_quit = Button(self.window, text='退出', command=self.window.quit, width=10, height=2)
            self.bt_quit.place(x=350, y=300)
            self.window.mainloop()
    

    2、准备数据库

    Python+Tkinter+MySQL带你搭建学生信息管理系统界面

    新建一个数据库,再建一个user表,分别添加username与password字段。

    3、编写数据库连接代码

    from pymysql import Connection
    # 自己的主机名、用户名、密码
    conn = Connection(
        host="localhost",
        port=3306,
        user="root",
        password="123456",
        autocommit=True
    )
    # 获取游标对象
    cursor = conn.cursor()
    # 选择数据库
    conn.select_db("db_student")
    # 执行sql语句
    cursor.execute("select * from user ")
    # 输出结果
    result = cursor.fetchall()
    # 控制台打印结果
    print(result)
    

    4、主页面编写

    # Import required modules
    import tkinter
    from tkinter import *
    from tkinter import ttk, messagebox
    from connect_mysql import conn
    # connect database
    cursor = conn.cursor()
    # Initialization of the main interface
    class Function:
        # Interface design
        def __init__(self):
            self.window = Tk()
            self.window.title('学生信息管理系统')
            self.window.geometry('750x450')
            self.canvas = Canvas(self.window, height=450, width=750)
            self.bg_image = PhotoImage(file="image/bg2.png")
            self.window.resizable(False, False)
            self.canvas.pack(side='top')
            self.image = self.canvas.create_image(0, 0, anchor='nw', image=self.bg_image)
            bt1 = Button(self.window, text='添加信息', command=self.insertItem, width=20, height=2)
            bt1.place(x=30, y=190)
            bt2 = Button(self.window, text='删除信息', command=self.deleteItem, width=20, height=2)
            bt2.place(x=30, y=260)
            bt3 = Button(self.window, text='修改信息', command=self.updateItem, width=20, height=2)
            bt3.place(x=30, y=330)
            lb4 = Label(self.window, text='学号:', width=7, height=2).place(x=200, y=20)
            lb5 = Label(self.window, text='姓名:', width=7, height=2).place(x=200, y=70)
            lb6 = Label(self.window, text='班级:', width=7, height=2).place(x=200, y=120)
            bt4 = Button(self.window, text='           查找           ', command=self.search, width=10, height=2).place(
                x=450, y=120)
            bt5 = Button(self.window, text="退出", command=self.exit, width=10, height=2)
            bt5.place(x=550, y=120)
            bt6 = Button(self.window, text="刷新", command=self.refresh, width=10, height=2)
            bt6.place(x=650, y=120)
            self.sdut_id = StringVar()
            self.en_sdut_id = Entry(self.window, textvariable=self.sdut_id)
            self.en_sdut_id.place(x=270, y=20, height=40)
            self.sdut_name = StringVar()
            self.en_sdut_name = Entry(self.window, textvariable=self.sdut_name)
            self.en_sdut_name.place(x=270, y=70, height=40)
            self.sdut_class = StringVar()
            self.en_sdut_class = Entry(self.window, textvariable=self.sdut_class)
            self.en_sdut_class.place(x=270, y=120, height=40)
            self.tree = ttk.Treeview(self.window, show="headings")
            self.tree["columns"] = ("0", "1", "2", "3", "4", "5")
            self.tree.place(x=200, y=180)
            self.tree.column('0', width=90, anchor='center')
            self.tree.column('1', width=90, anchor='center')
            self.tree.column('2', width=90, anchor='center')
            self.tree.column('3', width=90, anchor='center')
            self.tree.column('4', width=90, anchor='center')
            self.tree.column('5', width=90, anchor='center')
            self.tree.heading('0', text='学号')
            self.tree.heading('1', text='姓名')
            self.tree.heading('2', text='性别')
            self.tree.heading('3', text='年龄')
            self.tree.heading('4', text='班级')
            self.tree.heading('5', text='成绩')
            result = self.show()
            for res in result:
                li = [res[0], res[1], res[2], res[3], res[4], res[5]]
                self.tree.insert('', 'end', values=li)
            self.window.mainloop()

    三、系统展示

    1、登录界面

    Python+Tkinter+MySQL带你搭建学生信息管理系统界面

    2、注册页面

    Python+Tkinter+MySQL带你搭建学生信息管理系统界面

     3、主页面

    Python+Tkinter+MySQL带你搭建学生信息管理系统界面

     4、添加信息页面

    Python+Tkinter+MySQL带你搭建学生信息管理系统界面

     5、修改信息页面

    Python+Tkinter+MySQL带你搭建学生信息管理系统界面

    四、源码获取

    需要源码的联系方式如下:

    QQ:1633182048
    Wechat:ljx56260937

转载请注明来自码农世界,本文标题:《Python+Tkinter+MySQL带你搭建学生信息管理系统界面》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,89人围观)参与讨论

还没有评论,来说两句吧...

Top