import tkinter as tk
from tkinter import ttk, messagebox

# 星座数据，可自行修改运势文案
star_info = [
    {"name": "白羊座", "time": "03-21 ~ 04-19", "luck": "整体活力满满，适合主动出击，小机遇会主动找上门。小心冲动消费。"},
    {"name": "金牛座", "time": "04-20 ~ 05-20", "luck": "情绪稳定，适合规划存钱，慢一点反而更容易收获好结果。"},
    {"name": "双子座", "time": "05-21 ~ 06-21", "luck": "沟通运不错，多和朋友聊天会得到有用信息，注意力别太分散。"},
    {"name": "巨蟹座", "time": "06-22 ~ 07-22", "luck": "适合宅家休息，照顾好自己情绪，家人会给你温暖支持。"},
    {"name": "狮子座", "time": "07-23 ~ 08-22", "luck": "自信心拉满，展示自己的好时机，不要太在意别人的评价。"},
    {"name": "处女座", "time": "08-23 ~ 09-22", "luck": "细节容易纠结，放过自己，不用事事追求完美，放松一点。"},
    {"name": "天秤座", "time": "09-23 ~ 10-23", "luck": "人缘很好，社交愉快，做选择别一直犹豫，跟着直觉走。"},
    {"name": "天蝎座", "time": "10-24 ~ 11-22", "luck": "洞察力强，适合复盘计划，低调行事，不要轻易暴露目标。"},
    {"name": "射手座", "time": "11-23 ~ 12-21", "luck": "适合探索新事物，短途出行心情舒畅，说话留意分寸。"},
    {"name": "摩羯座", "time": "12-22 ~ 01-19", "luck": "努力会慢慢看到回报，坚持下去，不要急于求成。"},
    {"name": "水瓶座", "time": "01-20 ~ 02-18", "luck": "脑洞在线，灵感爆发，适合思考新想法，多给自己独处时间。"},
    {"name": "双鱼座", "time": "02-19 ~ 03-20", "luck": "共情力很强，注意区分现实和幻想，别轻易被他人影响情绪。"},
]

class StarLuckApp:
    def __init__(self, root):
        self.root = root
        self.root.title("星座运势【娱乐版】")
        self.root.geometry("490x380")

        # 标题
        title = tk.Label(root, text="✨ 星座运势查询 ✨", font=("SimHei", 19, "bold"), fg="#225599")
        title.pack(pady=12)

        # 下拉选择区域
        frame_sel = tk.Frame(root)
        frame_sel.pack(pady=6)
        tk.Label(frame_sel, text="选择星座：", font=("SimHei",12)).pack(side=tk.LEFT, padx=4)
        self.select_var = tk.StringVar()
        star_name_list = [s["name"] for s in star_info]
        self.combo = ttk.Combobox(frame_sel, textvariable=self.select_var, values=star_name_list, width=13, font=("SimHei",11))
        self.combo.current(0)
        self.combo.pack(side=tk.LEFT)

        # 查询按钮
        btn_check = tk.Button(root, text="查看今日运势", command=self.show_result, font=("SimHei",11), bg="#4285F4", fg="white")
        btn_check.pack(pady=10)

        # 结果文本框
        self.result_box = tk.Text(root, height=10, width=55, font=("SimHei",11))
        self.result_box.pack(padx=12, pady=4)
        self.result_box.config(state=tk.DISABLED)

        # 底部提示
        tip = tk.Label(root, text="温馨提示：本运势仅供娱乐，不要当真哦", font=("SimHei",9), fg="#777777")
        tip.pack(pady=4)

    def show_result(self):
        star_name = self.select_var.get()
        find_data = None
        for s in star_info:
            if s["name"] == star_name:
                find_data = s
                break
        if not find_data:
            messagebox.showerror("错误", "请选择正确星座！")
            return
        content = f"【{find_data['name']}】\n日期区间：{find_data['time']}\n\n今日运势\n{find_data['luck']}"
        self.result_box.config(state=tk.NORMAL)
        self.result_box.delete(1.0, tk.END)
        self.result_box.insert(tk.END, content)
        self.result_box.config(state=tk.DISABLED)

if __name__ == "__main__":
    main_win = tk.Tk()
    app = StarLuckApp(main_win)
    main_win.mainloop()
