ADD file via upload

main
p2th8sgna 6 months ago
parent b7052c0354
commit f558367e04

@ -0,0 +1,116 @@
import tkinter as tk
from tkinter import messagebox, simpledialog
from tkinter import ttk
import json
from datetime import datetime
class HomeworkManager:
def __init__(self, root):
self.root = root
self.root.title("作业管理系统")
self.homework_list = []
self.frame = tk.Frame(self.root)
self.frame.pack(pady=10)
self.label = tk.Label(self.frame, text="作业列表")
self.label.pack()
self.tree = ttk.Treeview(self.frame, columns=("描述", "截止日期", "优先级", "状态"), show="headings")
self.tree.heading("描述", text="描述")
self.tree.heading("截止日期", text="截止日期")
self.tree.heading("优先级", text="优先级")
self.tree.heading("状态", text="状态")
self.tree.pack(pady=10)
self.add_button = tk.Button(self.frame, text="添加作业", command=self.add_homework)
self.add_button.pack(side=tk.LEFT, padx=10)
self.delete_button = tk.Button(self.frame, text="删除作业", command=self.delete_homework)
self.delete_button.pack(side=tk.LEFT, padx=10)
self.details_button = tk.Button(self.frame, text="查看详情", command=self.view_details)
self.details_button.pack(side=tk.LEFT, padx=10)
self.complete_button = tk.Button(self.frame, text="标记为完成", command=self.mark_as_completed)
self.complete_button.pack(side=tk.LEFT, padx=10)
self.stats_button = tk.Button(self.frame, text="查看统计", command=self.view_stats)
self.stats_button.pack(side=tk.LEFT, padx=10)
self.save_button = tk.Button(self.frame, text="保存作业", command=self.save_homework)
self.save_button.pack(side=tk.LEFT, padx=10)
self.load_button = tk.Button(self.frame, text="加载作业", command=self.load_homework)
self.load_button.pack(side=tk.LEFT, padx=10)
def add_homework(self):
description = simpledialog.askstring("输入", "输入作业描述:")
if description:
due_date = simpledialog.askstring("输入", "输入截止日期YYYY-MM-DD")
priority = simpledialog.askstring("输入", "输入优先级(高/中/低):")
try:
due_date = datetime.strptime(due_date, '%Y-%m-%d').date()
except ValueError:
messagebox.showwarning("无效日期", "截止日期格式应为YYYY-MM-DD")
return
self.homework_list.append({"描述": description, "截止日期": str(due_date), "优先级": priority, "状态": "未完成"})
self.update_treeview()
def delete_homework(self):
selected_item = self.tree.selection()
if selected_item:
index = self.tree.index(selected_item)
del self.homework_list[index]
self.update_treeview()
else:
messagebox.showwarning("警告", "未选择任何作业进行删除")
def view_details(self):
selected_item = self.tree.selection()
if selected_item:
index = self.tree.index(selected_item)
hw = self.homework_list[index]
message = f"描述: {hw['描述']}\n截止日期: {hw['截止日期']}\n优先级: {hw['优先级']}\n状态: {hw['状态']}"
messagebox.showinfo("作业详情", message)
else:
messagebox.showwarning("警告", "未选择任何作业查看详情")
def mark_as_completed(self):
selected_item = self.tree.selection()
if selected_item:
index = self.tree.index(selected_item)
self.homework_list[index]['状态'] = "已完成"
self.update_treeview()
else:
messagebox.showwarning("警告", "未选择任何作业进行标记")
def view_stats(self):
total_homework = len(self.homework_list)
completed_homework = sum(1 for hw in self.homework_list if hw["状态"] == "已完成")
message = f"总作业数: {total_homework}\n已完成作业数: {completed_homework}\n未完成作业数: {total_homework - completed_homework}"
messagebox.showinfo("统计信息", message)
def save_homework(self):
with open("homework_list.json", "w", encoding='utf-8') as f:
json.dump(self.homework_list, f, ensure_ascii=False, indent=4)
messagebox.showinfo("保存", "作业列表已成功保存")
def load_homework(self):
try:
with open("homework_list.json", "r", encoding='utf-8') as f:
self.homework_list = json.load(f)
self.update_treeview()
messagebox.showinfo("加载", "作业列表已成功加载")
except FileNotFoundError:
messagebox.showwarning("加载", "未找到保存的作业列表")
def update_treeview(self):
self.tree.delete(*self.tree.get_children())
for hw in self.homework_list:
self.tree.insert("", tk.END, values=(hw["描述"],hw["截止日期"], hw["优先级"], hw["状态"]))
if __name__ == "__main__":
root = tk.Tk()
app = HomeworkManager(root)
root.mainloop()
Loading…
Cancel
Save