本文将介绍如何使用Python实现职工管理系统的图形化界面,并针对系统的添加、删除、查询、修改等功能进行详细阐述。
一、系统概述
职工管理系统是一种用于管理公司职工信息的计算机应用软件。其主要功能包括添加、删除、查询和修改职工信息,可以帮助公司高效地管理职工信息,并提高工作效率。图形化界面可以提供更方便、直观的操作界面,使用户更容易上手使用。
二、系统架构
本系统的架构主要分为三层:界面层、逻辑层和数据层。界面层负责展示用户图形化界面,逻辑层负责实现系统的各种功能,数据层负责管理职工信息的数据。
其中,界面层采用Python自带的Tkinter库来实现,逻辑层主要由Python语言实现,数据层采用Python自带的sqlite3库实现。
三、系统功能
1、添加职工信息
在系统中,用户可以通过点击“添加职工”按钮,进入到添加职工信息的页面。用户需要输入职工的姓名、性别、年龄、职位、工资等信息,并点击“确认”按钮来完成数据的添加。
import tkinter as tk
import sqlite3
class AddFrame:
# 初始化界面
def __init__(self, master):
self.master = master
self.master.geometry('400x300')
self.master.title('添加职工信息')
# 创建标签和输入框
tk.Label(self.master, text='姓名:').place(x=50, y=50)
self.name_entry = tk.Entry(self.master)
self.name_entry.place(x=100, y=50)
tk.Label(self.master, text='性别:').place(x=50, y=80)
self.gender_entry = tk.Entry(self.master)
self.gender_entry.place(x=100, y=80)
tk.Label(self.master, text='年龄:').place(x=50, y=110)
self.age_entry = tk.Entry(self.master)
self.age_entry.place(x=100, y=110)
tk.Label(self.master, text='职位:').place(x=50, y=140)
self.job_entry = tk.Entry(self.master)
self.job_entry.place(x=100, y=140)
tk.Label(self.master, text='工资:').place(x=50, y=170)
self.salary_entry = tk.Entry(self.master)
self.salary_entry.place(x=100, y=170)
# 创建确认和取消按钮
tk.Button(self.master, text='确认', command=self.add_employee).place(x=120, y=220)
tk.Button(self.master, text='取消', command=self.master.destroy).place(x=220, y=220)
# 添加职工信息
def add_employee(self):
name = self.name_entry.get()
gender = self.gender_entry.get()
age = self.age_entry.get()
job = self.job_entry.get()
salary = self.salary_entry.get()
# 连接数据库
conn = sqlite3.connect('employee.db')
cursor = conn.cursor()
# 执行SQL语句
cursor.execute('INSERT INTO employee (name, gender, age, job, salary) VALUES (?, ?, ?, ?, ?)',
(name, gender, age, job, salary))
# 提交事务
conn.commit()
# 关闭数据库连接
cursor.close()
conn.close()
# 提示用户添加成功
tk.messagebox.showinfo(title='提示', message='添加职工信息成功!')
# 清空输入框
self.name_entry.delete(0, tk.END)
self.gender_entry.delete(0, tk.END)
self.age_entry.delete(0, tk.END)
self.job_entry.delete(0, tk.END)
self.salary_entry.delete(0, tk.END)
2、删除职工信息
在系统中,用户可以通过点击“删除职工”按钮,进入到删除职工信息的页面。用户需要输入要删除的职工ID,并点击“确认”按钮来完成数据的删除。
class DeleteFrame:
# 初始化界面
def __init__(self, master):
self.master = master
self.master.geometry('400x150')
self.master.title('删除职工信息')
# 创建标签和输入框
tk.Label(self.master, text='职工ID:').place(x=50, y=50)
self.emp_id_entry = tk.Entry(self.master)
self.emp_id_entry.place(x=120, y=50)
# 创建确认和取消按钮
tk.Button(self.master, text='确认', command=self.delete_employee).place(x=120, y=90)
tk.Button(self.master, text='取消', command=self.master.destroy).place(x=220, y=90)
# 删除职工信息
def delete_employee(self):
emp_id = self.emp_id_entry.get()
# 连接数据库
conn = sqlite3.connect('employee.db')
cursor = conn.cursor()
# 执行SQL语句
cursor.execute('DELETE FROM employee WHERE id=?', (emp_id,))
# 提交事务
conn.commit()
# 关闭数据库连接
cursor.close()
conn.close()
# 提示用户删除成功
tk.messagebox.showinfo(title='提示', message='删除职工信息成功!')
# 清空输入框
self.emp_id_entry.delete(0, tk.END)
3、查询职工信息
在系统中,用户可以通过点击“查询职工”按钮,进入到查询职工信息的页面。用户可以通过职工ID、职工姓名等条件来查询职工信息,并在表格中展示查询结果。
class QueryFrame:
# 初始化界面
def __init__(self, master):
self.master = master
self.master.geometry('600x400')
self.master.title('查询职工信息')
# 创建标签和输入框
tk.Label(self.master, text='职工ID:').place(x=50, y=50)
self.emp_id_entry = tk.Entry(self.master)
self.emp_id_entry.place(x=120, y=50)
tk.Label(self.master, text='职工姓名:').place(x=250, y=50)
self.emp_name_entry = tk.Entry(self.master)
self.emp_name_entry.place(x=340, y=50)
# 创建查询按钮
tk.Button(self.master, text='查询', command=self.query_employee).place(x=500, y=45)
# 创建表格
self.tree = ttk.Treeview(self.master, columns=('ID', '姓名', '性别', '年龄', '职位', '工资'), show='headings')
self.tree.column('ID', width=80)
self.tree.column('姓名', width=100)
self.tree.column('性别', width=80)
self.tree.column('年龄', width=80)
self.tree.column('职位', width=100)
self.tree.column('工资', width=80)
self.tree.heading('ID', text='ID')
self.tree.heading('姓名', text='姓名')
self.tree.heading('性别', text='性别')
self.tree.heading('年龄', text='年龄')
self.tree.heading('职位', text='职位')
self.tree.heading('工资', text='工资')
self.tree.place(x=50, y=100)
# 查询职工信息
def query_employee(self):
emp_id = self.emp_id_entry.get()
emp_name = self.emp_name_entry.get()
# 连接数据库
conn = sqlite3.connect('employee.db')
cursor = conn.cursor()
# 执行SQL语句
if emp_id:
cursor.execute('SELECT * FROM employee WHERE id=?', (emp_id,))
elif emp_name:
cursor.execute('SELECT * FROM employee WHERE name=?', (emp_name,))
else:
cursor.execute('SELECT * FROM employee')
# 获取查询结果
results = cursor.fetchall()
# 清空表格
for item in self.tree.get_children():
self.tree.delete(item)
# 填充表格
if results:
for row in results:
self.tree.insert('', tk.END, values=row)
# 关闭数据库连接
cursor.close()
conn.close()
4、修改职工信息
在系统中,用户可以通过点击“修改职工”按钮,进入到修改职工信息的页面。用户需要输入要修改的职工ID,并可以修改职工的姓名、性别、年龄、职位、工资等信息,并点击“确认”按钮来完成数据的修改。
class ModifyFrame:
# 初始化界面
def __init__(self, master):
self.master = master
self.master.geometry('400x300')
self.master.title('修改职工信息')
# 创建标签和输入框
tk.Label(self.master, text='职工ID:').place(x=50, y=50)
self.emp_id_entry = tk.Entry(self.master)
self.emp_id_entry.place(x=120, y=50)
tk.Label(self.master, text='姓名:').place(x=50, y=80)
self.name_entry = tk.Entry(self.master)
self.name_entry.place(x=100, y=80)
tk.Label(self.master, text='性别:').place(x=50, y=110)
self.gender_entry = tk.Entry(self.master)
self.gender_entry.place(x=100, y=110)
tk.Label(self.master, text='年龄:').place(x=50, y=140)
self.age_entry = tk.Entry(self.master)
self.age_entry.place(x=100, y=140)
tk.Label(self.master, text='职位:').place(x=50, y=170)
self.job_entry = tk.Entry(self.master)
self.job_entry.place(x=100, y=170)
tk.Label(self.master, text='工资:').place(x=50, y=200)
self.salary_entry = tk.Entry(self.master)
self.salary_entry.place(x=100, y=200)
# 创建确认和取消按钮
tk.Button(self.master, text='确认', command=self.modify_employee).place(x=120, y=250)
tk.Button(self.master, text='取消', command=self.master.destroy).place(x=220, y=250)
# 修改职工信息
def modify_employee(self):
emp_id = self.emp_id_entry.get()
name = self.name_entry.get()
gender = self.gender_entry.get()
age = self.age_entry.get()
job = self.job_entry.get()
salary = self.salary_entry.get()
# 连接数据库
conn = sqlite3.connect('employee.db')
cursor = conn.cursor()
# 执行SQL语句
cursor.execute('UPDATE employee SET name=?, gender=?, age=?, job=?, salary=? WHERE id=?',
(name, gender, age, job, salary, emp_id))
# 提交事务
conn.commit()
# 关闭数据库连接
cursor.close()
conn.close()
# 提示用户修改成功
tk.messagebox.showinfo(title='提示', message='修改职工信息成功!')
# 清空输入框
self.emp_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.job_entry.delete(0, tk.END)
self.salary_entry.delete(0, tk.END)
四、总结
以上便是Python职工管理系统的图形化实现方式。通过界面层、逻辑层、数据层的三层架构,我们可以实现职工信息的添加、删除、查询和修改等功能,并通过图形化界面使用户更加方便、直观地管理职工信息。希望本文能对初学Python的读者有所帮助。
本文链接:https://my.lmcjl.com/post/10904.html
4 评论