
### 1. 整体功能概述
此 Python 程序借助 Tkinter 库构建了一个职工档案管理系统,该系统具备添加、删除、查询、导入和导出职工信息等功能,还能查看职工详细信息、设置照片文件夹、进行行为与预警数据分析,并且可修改表头信息。
### 2. 代码结构与模块导入
```python
import tkinter as tk
from tkinter import ttk
from tkinter import messagebox
import csv
from PIL import Image, ImageTk
from tkinter import font
from tkinter import filedialog
```
上述代码导入了必要的库,涵盖 Tkinter 及其子模块、CSV 处理模块、PIL 库用于处理图片,以及字体和文件对话框模块。
### 3. 主要功能模块 3.1 数据初始化
```python
employees = []
photo_folder = '.'
```
- employees :用于存储职工信息的列表。
- photo_folder :照片文件夹的路径,默认是当前目录。 3.2 数据保存与加载
```python
def save_to_csv():
# ...
def load_from_csv():
# ...
```
- save_to_csv() :把职工信息保存到 employees.csv 文件中。
- load_from_csv() :从 employees.csv 文件加载职工信息。 3.3 表格更新
```python
def update_table():
# ...
```
- update_table() :更新表格显示,清空现有表格内容并重新插入所有职工信息。 3.4 添加职工信息
```python
def add_employee():
# ...
```
- add_employee() :创建一个新窗口,用于录入职工信息,录入完成后保存到 employees 列表,并更新表格和保存到 CSV 文件。 3.5 删除职工信息
```python
def delete_employee():
# ...
```
- delete_employee() :删除选中的职工信息,更新表格并保存到 CSV 文件。若未选中任何信息,会弹出警告框。 3.6 查询职工信息
```python
def search_employee():
# ...
```
- search_employee() :创建一个查询窗口,输入关键字后,会在表格中高亮显示匹配的职工信息。 3.7 职工信息导入与导出
```python
def import_employees():
# ...
def export_employees():
# ...
```
- import_employees() :从 employees.csv 文件导入职工信息,更新表格并弹出提示框。
- export_employees() :将当前职工信息保存到 employees.csv 文件,并弹出提示框。 3.8 职工详细信息
```python
def show_employee_details():
# ...
```
- show_employee_details() :创建一个新窗口,显示选中职工的详细信息,包含照片(若存在),还提供导入和导出详细信息的功能。 3.9 选择照片文件夹
```python
def select_photo_folder():
# ...
```
- select_photo_folder() :弹出文件夹选择对话框,让用户选择照片文件夹,并更新 photo_folder 变量。 3.10 行为与预警数据分析
```python
def show_behavior_analysis():
# ...
def show_warning_analysis():
# ...
```
- show_behavior_analysis() :创建一个新窗口,显示行为数据分析结果。
- show_warning_analysis() :创建一个新窗口,显示预警数据分析结果。 3.11 修改表头信息
```python
def modify_headers():
# ...
```
- modify_headers() :创建一个新窗口,让用户添加、删除和保存表头信息,更新表格列信息。
### 4. 主窗口与界面布局
```python
root = tk.Tk()
root.title("职工档案管理系统")
root.geometry("1550x800")
# 创建自定义字体
custom_font = font.Font(family="Arial", size=20)
# 创建功能按钮
button_frame = tk.Frame(root)
button_frame.pack(pady=20, fill=tk.X)
# ... 其他按钮和标签创建代码 ...
# 创建表头
columns = ('巴士公司', '科室', '车队', '线路', '车辆自编号', '姓名', '职位', '工号', '性别', '政治面貌', '学历', '年龄', '婚姻状况', '健康状况', '入职时间', '工龄', '准驾车型', '驾龄', '个人荣誉', '备注')
tree = ttk.Treeview(root, columns=columns, show='headings')
# ... 表格布局和设置代码 ...
# 加载职工信息
load_from_csv()
# 运行主循环
root.mainloop()
```
```
- 创建主窗口,设置标题和大小。
- 创建自定义字体,用于显示文本。
- 创建功能按钮,每个按钮对应一个功能函数。
- 创建表格,显示职工信息。
- 加载职工信息并运行主循环。
### 5. 使用方法
1. 启动程序 :运行 employee_management_system.py 文件,打开职工档案管理系统主窗口。
2. 添加职工信息 :点击“添加职工信息”按钮,在弹出窗口中输入职工信息,点击“保存”按钮。
3. 删除职工信息 :在表格中选中要删除的职工信息,点击“删除职工信息”按钮。
4. 查询职工信息 :点击“查询职工信息”按钮,在弹出窗口中输入关键字,点击“查询”按钮。
5. 导入和导出职工信息 :点击“职工信息导入”或“职工信息导出”按钮,完成相应操作。
6. 查看职工详细信息 :在表格中选中要查看的职工信息,点击“职工详细信息”按钮。
7. 选择照片文件夹 :点击“选择照片路径”按钮,选择照片文件夹。
8. 行为与预警数据分析 :点击“行为数据分析”或“预警数据分析”按钮,查看相应结果。
9. 修改表头信息 :点击“修改表头信息”按钮,在弹出窗口中添加、删除和保存表头信息。
### 6. 注意事项
- 照片文件的命名规则为 {姓名}{工号}.png ,存放在指定的照片文件夹中。
- 若未找到 employees.csv 文件,程序会默认创建一个新文件。
- 部分功能(如行为与预警数据分析)的内容为示例,实际使用时需根据需求进行修改。
视频:https://www.toutiao.com/video/7487057591827251712/?from_scene=all&log_from=ae2ac28b75eed_1744344169911
需要完整源码私信:Q群:257011997