# -*- coding: utf-8 -*-
import tkinter as tk
from tkinter import ttk, scrolledtext

# 唐诗库
poem_list = [
    {"title":"春晓","author":"孟浩然","text":"春眠不觉晓，处处闻啼鸟。\n夜来风雨声，花落知多少。"},
    {"title":"静夜思","author":"李白","text":"床前明月光，疑是地上霜。\n举头望明月，低头思故乡。"},
    {"title":"登鹳雀楼","author":"王之涣","text":"白日依山尽，黄河入海流。\n欲穷千里目，更上一层楼。"},
    {"title":"相思","author":"王维","text":"红豆生南国，春来发几枝。\n愿君多采撷，此物最相思。"},
    {"title":"江雪","author":"柳宗元","text":"千山鸟飞绝，万径人踪灭。\n孤舟蓑笠翁，独钓寒江雪。"},
    {"title":"望庐山瀑布","author":"李白","text":"日照香炉生紫烟，遥看瀑布挂前川。\n飞流直下三千尺，疑是银河落九天。"},
    {"title":"赋得古原草送别","author":"白居易","text":"离离原上草，一岁一枯荣。\n野火烧不尽，春风吹又生。"},
    {"title":"寻隐者不遇","author":"贾岛","text":"松下问童子，言师采药去。\n只在此山中，云深不知处。"},
    {"title":"九月九日忆山东兄弟","author":"王维","text":"独在异乡为异客，每逢佳节倍思亲。\n遥知兄弟登高处，遍插茱萸少一人。"},
    {"title":"赠汪伦","author":"李白","text":"李白乘舟将欲行，忽闻岸上踏歌声。\n桃花潭水深千尺，不及汪伦送我情。"}
]

class TangPoemApp:
    def __init__(self, root):
        self.root = root
        self.root.title("唐诗三百首 - 可视化阅读器")
        self.root.geometry("750x550")

        # 顶部标题
        title_label = tk.Label(root, text="📖 唐诗三百首", font=("微软雅黑", 20, "bold"), fg="#2c3e50")
        title_label.pack(pady=10)

        # 左侧选择栏
        left_frame = tk.Frame(root)
        left_frame.pack(side=tk.LEFT, padx=10, fill=tk.Y)

        tk.Label(left_frame, text="诗歌列表", font=("微软雅黑",12)).pack()
        self.poem_box = ttk.Combobox(left_frame, width=15, font=("微软雅黑",11))
        self.poem_box["values"] = [p["title"] for p in poem_list]
        self.poem_box.pack(pady=5)
        self.poem_box.bind("<<ComboboxSelected>>", self.show_poem)

        # 搜索区域
        tk.Label(left_frame, text="关键词搜索", font=("微软雅黑",12)).pack(pady=(15,0))
        self.search_entry = tk.Entry(left_frame, width=15, font=("微软雅黑",11))
        self.search_entry.pack(pady=5)
        search_btn = tk.Button(left_frame, text="搜索", command=self.search_poem, bg="#3498db", fg="white")
        search_btn.pack()

        # 右侧内容区
        right_frame = tk.Frame(root)
        right_frame.pack(side=tk.RIGHT, padx=10, expand=True, fill=tk.BOTH)

        self.text_area = scrolledtext.ScrolledText(right_frame, font=("微软雅黑", 14), wrap=tk.WORD)
        self.text_area.pack(expand=True, fill=tk.BOTH)

    def show_poem(self, event):
        """选中标题展示全诗"""
        name = self.poem_box.get()
        for p in poem_list:
            if p["title"] == name:
                content = f"【{p['title']}】\n作者：{p['author']}\n\n{p['text']}"
                self.text_area.delete(1.0, tk.END)
                self.text_area.insert(tk.END, content)
                return

    def search_poem(self):
        """按作者/诗句搜索"""
        key = self.search_entry.get().strip()
        if not key:
            return
        res = []
        for p in poem_list:
            if key in p["author"] or key in p["text"]:
                res.append(f"《{p['title']}》{p['author']}\n{p['text']}\n" + "-"*30)
        self.text_area.delete(1.0, tk.END)
        if res:
            self.text_area.insert(tk.END, "\n\n".join(res))
        else:
            self.text_area.insert(tk.END, "未找到相关唐诗！")

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