今天给大家分享一个超绝的 Python 小项目 ——满屏爱心弹窗程序。运行之后,屏幕上会自动弹出无数个彩色小窗口,慢慢拼成一颗巨大的爱心,中间还藏着专属的暖心文案,最后还有满屏的治愈小提示,不管是用来表白、给朋友惊喜,还是给自己打气,都超有氛围感!

程序启动后,一个个彩色的小窗口会按照爱心的轮廓,依次出现在屏幕上,从零散到完整,慢慢拼成一颗饱满的爱心,每一个窗口都带着一句暖心文案,比如 “好好爱自己”“好好吃饭”“别熬夜”,治愈感直接拉满!
爱心成型后,屏幕会瞬间被无数彩色小窗口铺满,每一个窗口都随机显示暖心提示,不同的马卡龙配色,搭配软乎乎的文字,不管是自己看还是发给朋友,都超有感觉!
所有窗口都置顶显示,不用担心被遮挡,按下空格键就能一键关闭所有窗口,完全不会有残留,操作零门槛!
这个程序用 Python 的tkinter库实现,核心逻辑超清晰,哪怕是编程新手也能轻松理解:
wx函数,用来生成带文案、带颜色的置顶弹窗,还绑定了空格关闭的快捷键。time.sleep()控制弹窗出现的速度,实现爱心慢慢成型、满屏弹窗的流畅动画。import tkinter as tk, random, time, sys, mathh, a = [], []# 暖心文案库,可自行修改t = ["多喝水利","好好爱自己","好好吃饭","保持好心情","我想你了","顺顺利利","别熬夜","天凉了多穿衣服"]# 弹窗背景色,可自行修改c = ["pink","lightblue","lightgreen","lemonchiffon","hotpink","skyblue"]def g(n, w, h):"""生成爱心轮廓的坐标点"""p = []for i in range(n):th = i/n*2*math.pi# 经典爱心参数方程x = 16*math.sin(th)**3y = 13*math.cos(th)-5*math.cos(2*th)-2*math.cos(3*th)-math.cos(4*th)# 坐标适配屏幕,避免窗口超出屏幕sx = int(w/2 + x*20 - 50)sy = int(h/2 - y*20 - 80)p.append((max(0, min(sx, w-150)), max(0, min(sy, h-60))))return pdef wx(x, y, tip=None, is_h=True):"""创建单个弹窗窗口"""w = tk.Toplevel()# 窗口大小与位置w.geometry(f"150x60+{x}+{y}")w.title("提示")# 窗口置顶,避免被遮挡w.attributes('-topmost', 1)# 随机文案+随机背景色tk.Label(w, text=tip or random.choice(t), bg=random.choice(c),font=("微软雅黑", 14), width=20, height=3).pack()# 绑定空格键:一键关闭所有窗口并退出程序w.bind('<space>', lambda e: [_.destroy() for _ in h+a] or sys.exit())return wdef w():"""主程序逻辑"""# 隐藏主窗口,仅显示弹窗r = tk.Tk()r.withdraw()# 获取屏幕分辨率sw, sh = r.winfo_screenwidth(), r.winfo_screenheight()n = 100 # 爱心窗口数量,可调整# 1. 生成爱心形状的弹窗for i, (x, y) in enumerate(g(n, sw, sh)):# 最后一个窗口显示专属文案,可自行修改w = wx(x, y, "充实自己" if i ==n-1 else None)h.append(w)r.update()time.sleep(0.03) # 控制爱心成型速度# 2. 停留1秒后关闭爱心窗口time.sleep(1)[_.destroy() for _ in h if isinstance(_, tk.Toplevel) and _.winfo_exists()]# 3. 生成满屏随机弹窗for _ in range(sw//150 * sh//40 + 50):x, y = random.randint(0, sw-150), random.randint(0, sh-60)w = wx(x, y, is_h=False)a.append(w)r.update()time.sleep(0.005) # 控制满屏弹窗出现速度# 4. 停留10秒后,依次关闭满屏弹窗time.sleep(10)total_time = 1.0num_windows = len(a)if num_windows > 0:interval = total_time / num_windowsfor window in a:if isinstance(window, tk.Toplevel) and window.winfo_exists():window.destroy()r.update()time.sleep(interval)# 保持主循环r.mainloop()if __name__ == "__main__":w()
拿到代码不用直接用,这些地方可以改成你自己的专属版本:
t列表里的内容,换成你想对 TA 说的话,比如 “我爱你”“生日快乐”“要开心呀”。c列表里的颜色值,换成你喜欢的配色,比如["#FF6B6B", "#4ECDC4", "#45B7D1"]。"充实自己"换成你想放在爱心中间的专属文字,比如对方的名字、表白语。time.sleep()里的数值,数值越小,动画越快,比如把0.03改成0.01,爱心成型速度翻倍。geometry(f"150x60+{x}+{y}")里的150x60,改成你想要的窗口尺寸。tkinter是 Python 自带的标准库。attributes参数。代码从来都不是冰冷的,它可以是程序员最浪漫的告白,也可以是给自己的一份治愈。
快把这个代码复制下来,给你爱的人一个超甜的惊喜,或者在疲惫的时候,给自己满屏的暖心鼓励吧!
如果运行有问题,或者想要更多定制化修改,欢迎在评论区留言~