import tkinter as tk
from tkinter import ttk

class ScheduleApp:
    def __init__(self, root):
        self.root = root
        self.root.title("课程表")
        # 修复：使用 x 而不是 ,
        self.root.geometry("800x450")

        # 表头
        self.week = ["节次", "周一", "周二", "周三", "周四", "周五", "周六", "周日"]
        # 初始化课程数据，空代表无课
        self.course_data = [
            ["第1节", "语文", "数学", "英语", "物理", "化学", "", ""],
            ["第2节", "数学", "英语", "语文", "化学", "物理", "", ""],
            ["第3节", "历史", "地理", "生物", "体育", "政治", "", ""],
            ["第4节", "自习", "自习", "自习", "自习", "自习", "", ""],
            ["第5节", "英语", "语文", "数学", "生物", "地理", "", ""],
            ["第6节", "政治", "体育", "历史", "自习", "自习", "", ""],
        ]

        # 创建表格
        self.table = ttk.Treeview(root, columns=self.week, show="headings")
        # 设置表头
        for col in self.week:
            self.table.heading(col, text=col)
            self.table.column(col, width=95, anchor="center")

        # 插入课程数据
        for row in self.course_data:
            self.table.insert("", tk.END, values=row)

        self.table.pack(expand=True, fill="both", padx=10, pady=10)

        # 双击修改课程
        self.table.bind("<Double-1>", self.edit_cell)

    def edit_cell(self, event):
        """双击单元格修改课程名称"""
        item = self.table.selection()[0]
        col_index = self.table.identify_column(event.x)
        col_num = int(col_index.replace("#", "")) - 1
        values = list(self.table.item(item, "values"))

        # 弹出输入框
        popup = tk.Toplevel(self.root)
        popup.title("修改课程")
        popup.geometry("250x100")
        tk.Label(popup, text="输入课程名称：").pack(pady=5)
        entry = tk.Entry(popup)
        entry.insert(0, values[col_num])
        entry.pack(pady=5)

        def save():
            values[col_num] = entry.get()
            self.table.item(item, values=values)
            popup.destroy()

        tk.Button(popup, text="保存", command=save).pack(pady=2)

if __name__ == "__main__":
    window = tk.Tk()
    app = ScheduleApp(window)
    window.mainloop()