Python职工管理系统的图形化实现

本文将介绍如何使用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 评论

留下您的评论.