import tkinter as tk
from tkinter import ttk, scrolledtext

# 唐诗数据（节选经典篇目，你可以无限扩充）
tang_poems = [
    {"title": "静夜思", "author": "李白", "content": "床前明月光，疑是地上霜。\n举头望明月，低头思故乡。"},
    {"title": "春晓", "author": "孟浩然", "content": "春眠不觉晓，处处闻啼鸟。\n夜来风雨声，花落知多少。"},
    {"title": "登鹳雀楼", "author": "王之涣", "content": "白日依山尽，黄河入海流。\n欲穷千里目，更上一层楼。"},
    {"title": "相思", "author": "王维", "content": "红豆生南国，春来发几枝。\n愿君多采撷，此物最相思。"},
    {"title": "咏鹅", "author": "骆宾王", "content": "鹅，鹅，鹅，曲项向天歌。\n白毛浮绿水，红掌拨清波。"},
    {"title": "江雪", "author": "柳宗元", "content": "千山鸟飞绝，万径人踪灭。\n孤舟蓑笠翁，独钓寒江雪。"},
    {"title": "寻隐者不遇", "author": "贾岛", "content": "松下问童子，言师采药去。\n只在此山中，云深不知处。"},
    {"title": "回乡偶书", "author": "贺知章", "content": "少小离家老大回，乡音无改鬓毛衰。\n儿童相见不相识，笑问客从何处来。"},
    {"title": "九月九日忆山东兄弟", "author": "王维", "content": "独在异乡为异客，每逢佳节倍思亲。\n遥知兄弟登高处，遍插茱萸少一人。"},
    {"title": "送元二使安西", "author": "王维", "content": "渭城朝雨浥轻尘，客舍青青柳色新。\n劝君更尽一杯酒，西出阳关无故人。"}
]

class PoemApp:
    def __init__(self, root):
        self.root = root
        self.root.title("唐诗三百首 - 经典版")
        self.root.geometry("650x500")  # 窗口大小

        # 标题标签
        title_label = ttk.Label(root, text="📜 唐诗三百首", font=("微软雅黑", 20, "bold"))
        title_label.pack(pady=10)

        # 顶部选择栏
        frame_top = ttk.Frame(root)
        frame_top.pack(pady=5, fill=tk.X, padx=20)

        ttk.Label(frame_top, text="选择诗篇：", font=("微软雅黑", 12)).pack(side=tk.LEFT, padx=5)
        
        # 下拉选择框
        self.poem_var = tk.StringVar()
        poem_titles = [poem["title"] + " - " + poem["author"] for poem in tang_poems]
        self.poem_combobox = ttk.Combobox(
            frame_top, textvariable=self.poem_var, values=poem_titles,
            font=("微软雅黑", 11), width=40
        )
        self.poem_combobox.pack(side=tk.LEFT, padx=10)
        self.poem_combobox.bind("<<ComboboxSelected>>", self.show_poem)  # 选择触发

        # 查看按钮
        ttk.Button(frame_top, text="查看", command=self.show_poem).pack(side=tk.LEFT, padx=5)

        # 诗歌内容显示框
        self.poem_text = scrolledtext.ScrolledText(
            root, font=("微软雅黑", 14), width=60, height=15,
            wrap=tk.WORD, relief=tk.GROOVE, bd=2
        )
        self.poem_text.pack(pady=15, padx=20, fill=tk.BOTH, expand=True)

        # 默认显示第一首
        if tang_poems:
            self.poem_combobox.current(0)
            self.show_poem()

    def show_poem(self, event=None):
        """显示选中的唐诗"""
        try:
            index = self.poem_combobox.current()
            poem = tang_poems[index]
            # 清空内容
            self.poem_text.delete(1.0, tk.END)
            # 插入内容
            content = f"【诗名】{poem['title']}\n\n【作者】{poem['author']}\n\n【诗文】\n{poem['content']}"
            self.poem_text.insert(tk.END, content)
        except:
            self.poem_text.delete(1.0, tk.END)
            self.poem_text.insert(tk.END, "请选择一首唐诗！")

if __name__ == "__main__":
    main_root = tk.Tk()
    app = PoemApp(main_root)
    main_root.mainloop()