position_entry.pack()
department_label = tk.Label(update_window, text="Department:")
department_label.pack()
department_entry = tk.Entry(update_window)
department_entry.pack()
def update\_employee\_in\_db():
employee_id = id_entry.get()
name = name_entry.get()
position = position_entry.get()
department = department_entry.get()
conn = sqlite3.connect('employee.db')
c = conn.cursor()
c.execute("UPDATE employees SET name=?, position=?, department=? WHERE id=?", (name, position, department, employee_id))
conn.commit()
conn.close()
messagebox.showinfo("Success", "Employee updated successfully")
update_window.destroy()
update_button = tk.Button(update_window, text="Update Employee", command=update_employee_in_db)
update_button.pack()
def display_employees():
display_window = tk.Toplevel(root)
display_window.title(“Employees”)
conn = sqlite3.connect('employee.db')
c = conn.cursor()
c.execute("SELECT \* FROM employees")
employees = c.fetchall()
conn.close()
for employee in employees:
tk.Label(display_window, text=employee).pack()
root = tk.Tk()
root.title(“Employee Management System”)
add_button = tk.Button(root, text=“Add Employee”, command=add_employee_window)
add_button.pack()
delete_button = tk.Button(root, text=“Delete Employee”, command=delete_employee_window)
delete_button.pack()
update_button = tk.Button(root, text=“Update Employee”, command=update_employee_window)
update_button.pack()
display_button = tk.Button(root, text=“Display Employees”, command=display_employees)
display_button.pack()
root.mainloop()
在这个示例代码中,主界面包括了四个按钮:Add Employee、Delete Employee、Update Employee和Display Employees。每个按钮对应打开一个子窗口,用来实现增加、删除、修改和显示员工信息的功能。子窗口中包括相应的输入框和按钮,用户可以在子窗口中输入员工信息并进行操作。
您可以根据需要进一步扩展和优化这个示例代码,以满足您的具体需求。
### 五、增加模糊查询功能示例代码
![在这里插入图片描述](https://img-blog.csdnimg.cn/230201de320b44c0b44d39aca6b14c12.gif)为了实现具有模糊查询能力的功能,我们可以添加一个文本框供用户输入关键字,并根据输入的关键字进行模糊查询。以下是更新后的代码示例:
import tkinter as tk
import sqlite3
from tkinter import messagebox
def add_employee_window():
# 省略添加员工窗口的代码
def delete_employee_window():
# 省略删除员工窗口的代码
def update_employee_window():
# 省略更新员工窗口的代码
def display_employees():
display_window = tk.Toplevel(root)
display_window.title(“Employee List”)
conn = sqlite3.connect('employee.db')
c = conn.cursor()
# 获取用户输入的关键字
keyword = search_entry.get()
# 执行模糊查询
c.execute("SELECT \* FROM employees WHERE name LIKE ? OR position LIKE ? OR department LIKE ?", ('%'+keyword+'%', '%'+keyword+'%', '%'+keyword+'%'))
employees = c.fetchall()
conn.close()
for employee in employees:
employee_info = f"ID: {employee[0]}, Name: {employee[1]}, Position: {employee[2]}, Department: {employee[3]}"
label = tk.Label(display_window, text=employee_info)
label.pack()
root = tk.Tk()
root.title(“Employee Management System”)
添加一个文本框用于输入关键字
search_label = tk.Label(root, text=“Search:”)
search_label.pack()
search_entry = tk.Entry(root)
search_entry.pack()
add_button = tk.Button(root, text=“Add Employee”, command=add_employee_window)
add_button.