以下是一个基于Tkinter和SQLite的学生信息管理系统的示例代码:

import tkinter as tk
import sqlite3

class StudentInfoGUI(tk.Frame):
    def __init__(self, master=None):
        super().__init__(master)
        self.master = master
        self.master.title("学生信息管理系统")
        self.master.geometry("400x300")
        self.create_widgets()

    def create_widgets(self):
        # 创建输入框和标签
        self.id_label = tk.Label(self.master, text="学号")
        self.id_label.grid(row=0, column=0, padx=5, pady=5)
        self.id_entry = tk.Entry(self.master)
        self.id_entry.grid(row=0, column=1, padx=5, pady=5)

        self.name_label = tk.Label(self.master, text="姓名")
        self.name_label.grid(row=1, column=0, padx=5, pady=5)
        self.name_entry = tk.Entry(self.master)
        self.name_entry.grid(row=1, column=1, padx=5, pady=5)

        self.gender_label = tk.Label(self.master, text="性别")
        self.gender_label.grid(row=2, column=0, padx=5, pady=5)
        self.gender_entry = tk.Entry(self.master)
        self.gender_entry.grid(row=2, column=1, padx=5, pady=5)

        self.age_label = tk.Label(self.master, text="年龄")
        self.age_label.grid(row=3, column=0, padx=5, pady=5)
        self.age_entry = tk.Entry(self.master)
        self.age_entry.grid(row=3, column=1, padx=5, pady=5)

        # 创建按钮
        self.add_button = tk.Button(self.master, text="添加", command=self.add_student)
        self.add_button.grid(row=4, column=0, padx=5, pady=5)

        self.query_button = tk.Button(self.master, text="查询", command=self.query_student)
        self.query_button.grid(row=4, column=1, padx=5, pady=5)

        self.delete_button = tk.Button(self.master, text="删除", command=self.delete_student)
        self.delete_button.grid(row=4, column=2, padx=5, pady=5)

        self.clear_button = tk.Button(self.master, text="清除", command=self.clear_inputs)
        self.clear_button.grid(row=4, column=3, padx=5, pady=5)

        # 创建文本框
        self.textbox = tk.Text(self.master, height=10, width=30)
        self.textbox.grid(row=5, column=0, columnspan=4, padx=5, pady=5)

    def add_student(self):
        # 获取输入框中的值
        id_val = self.id_entry.get()
        name_val = self.name_entry.get()
        gender_val = self.gender_entry.get()
        age_val = self.age_entry.get()

        # 连接数据库并插入数据
        conn = sqlite3.connect("d:\students.db")
        cursor = conn.cursor()
        cursor.execute("INSERT INTO students VALUES (?, ?, ?, ?)", (id_val, name_val, gender_val, age_val))
        conn.commit()
        conn.close()

        # 清空输入框
        self.clear_inputs()

    def query_student(self):
        # 获取输入框中的学号
        id_val = self.id_entry.get()

        # 连接数据库并查询数据
        conn = sqlite3.connect("d:\students.db")
        cursor = conn.cursor()
        cursor.execute("SELECT * FROM students WHERE id=?", (id_val,))
        result = cursor.fetchone()
        conn.close()

        # 将结果显示在文本框中
        if result:
            self.textbox.delete("1.0", tk.END)
            self.textbox.insert(tk.END, "学号:%s\n姓名:%s\n性别:%s\n年龄:%s\n" % result)
        else:
            tk.messagebox.showinfo("提示", "该学号不存在!")

    def delete_student(self):
        # 获取输入框中的学号
        id_val = self.id_entry.get()

        # 连接数据库并删除数据
        conn = sqlite3.connect("d:\students.db")
        cursor = conn.cursor()
        cursor.execute("DELETE FROM students WHERE id=?", (id_val,))
        conn.commit()
        conn.close()

        # 清空输入框
        self.clear_inputs()

    def clear_inputs(self):
        self.id_entry.delete(0, tk.END)
        self.name_entry.delete(0, tk.END)
        self.gender_entry.delete(0, tk.END)
        self.age_entry.delete(0, tk.END)
        self.textbox.delete("1.0", tk.END)

if __name__ == "__main__":
    root = tk.Tk()
    app = StudentInfoGUI(master=root)
    app.mainloop()

在该示例代码中,我们首先创建了一个名为StudentInfoGUI的类,继承自tk.Frame。该类包含了一些方法,用于创建各种界面组件、连接数据库、执行增删查改操作等。

create_widgets方法中,我们创建了输入框、标签、按钮和文本框等组件,并将它们放置在主窗口中。

add_student方法中,我们获取输入框中的学号、姓名、性别和年龄信息,然后连接数据库并执行INSERT语句,将这些信息插入到students表中。最后,我们调用clear_inputs方法清空输入框。

query_student方法中,我们获取输入框中的学号,然后连接数据库并执行SELECT语句,获取该学号对应的学生信息。如果查询到了结果,我们将结果显示在文本框中;否则,弹出一个提示框。

delete_student方法中,我们获取输入框中的学号,然后连接数据库并执行DELETE语句,删除该学号对应的学生信息。最后,我们调用clear_inputs方法清空输入框。

clear_inputs方法中,我们清空所有输入框和文本框中的内容。

最后,在__main__函数中创建了一个Tkinter的主窗口,并运行StudentInfoGUI类的实例,启动程序

编写图形界面应用程序实现学生信息的添加、查询和删除学生信息存储在SQLite数据库中如dstudentsdb文件。要求:1单击添加按钮可以将入框的学号、姓名、性别、年龄信息添加到数据库中。2单击查询根据学号查询对应数据库的学生的信息并显示在文本框。如不存在则弹出提示框。3单击删除根据学号删除该学生在数据库的信息。如该学号不存在则弹出提示框。4单击清除将文本框的内容清空。python编写

原文地址: https://www.cveoy.top/t/topic/f23V 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录