用代码书写浪漫,网友直呼“太美了”!

刷短视频的时候,无意看到了一个很有意思的代码,于是本地复刻了一版升级版,分享给你。

先看效果:

视频演示

www.bilibili.com/video/BV1Rb...

实现代码

代码分享(Python 写的):

python 复制代码
import tkinter as tk
import random

# 弹窗计数器(初始为0)
window_count = 0
# 存储所有弹窗的列表
windows_list = []
# 最大弹窗数量
MAX_WINDOWS = 300


def create_warm_tip():
    global window_count  # 声明使用全局计数器
    # 创建弹窗(关联主窗口 root)
    window = tk.Toplevel(root)

    # 获取屏幕宽高
    screen_width = root.winfo_screenwidth()
    screen_height = root.winfo_screenheight()

    # 随机窗口位置(确保完全显示)
    window_width = 250
    window_height = 60
    x = random.randrange(0, screen_width - window_width)
    y = random.randrange(0, screen_height - window_height)

    # 设置窗口标题、大小和位置
    window.title('温馨提示')
    window.geometry(f"{window_width}x{window_height}+{x}+{y}")

    # 随机提示文字
    tips = [
        '多喝水哦~', '保持微笑呀', '每天都要元气满满',
        '记得吃水果', '保持好心情', '好好爱自己', '我想你了',
        '梦想成真', '期待下一次见面', '金榜题名',
        '顺顺利利', '早点休息', '愿所有烦恼都消失',
        '别熬夜', '今天过得开心嘛', '天冷了,多穿衣服'
    ]
    tip = random.choice(tips)

    # 随机背景颜色
    bg_colors = [
        'lightpink', 'skyblue', 'lightgreen', 'lavender',
        'lightyellow', 'plum', 'coral', 'bisque', 'aquamarine',
        'mistyrose', 'honeydew', 'lavenderblush', 'oldlace'
    ]
    bg = random.choice(bg_colors)

    # 创建标签显示文字
    tk.Label(
        window,
        text=tip,
        bg=bg,
        font=('微软雅黑', 16),
        width=30,
        height=3
    ).pack()

    # 窗口置顶(新弹窗会显示在最上层)
    window.attributes('-topmost', True)

    # 将弹窗添加到列表
    windows_list.append(window)
    # 弹窗数量+1
    window_count += 1


def auto_pop_tips(interval=200):  # 间隔时间(毫秒),0.3秒=300毫秒
    # 只有当弹窗数量小于300时,才继续创建
    if window_count < MAX_WINDOWS:
        create_warm_tip()  # 创建一个弹窗
        # 继续定时递归调用(实现循环弹窗)
        root.after(interval, auto_pop_tips, interval)
    else:
        # 达到300个弹窗后,打印提示并开始关闭弹窗
        print(f"已达到最大弹窗数量({MAX_WINDOWS}个),开始逐个关闭")
        # 延迟1秒后开始逐个关闭弹窗
        root.after(1000, close_windows_one_by_one)


def close_windows_one_by_one(interval=100):  # 关闭间隔时间(毫秒)
    if windows_list:
        # 取出并关闭最后一个弹窗
        window = windows_list.pop()
        window.destroy()
        print(f"剩余弹窗数量: {len(windows_list)}")

        # 继续关闭下一个弹窗
        if windows_list:
            root.after(interval, close_windows_one_by_one, interval)
        else:
            print("所有弹窗已关闭")
            # 所有弹窗关闭后,也关闭主窗口
            root.after(1000, root.destroy)
    else:
        print("所有弹窗已关闭")
        # 所有弹窗关闭后,也关闭主窗口
        root.after(1000, root.destroy)


# 创建主窗口(隐藏,作为所有弹窗的父窗口)
root = tk.Tk()
root.withdraw()  # 隐藏主窗口

# 启动定时弹窗(间隔0.3秒)
auto_pop_tips(200)

# 启动主循环
root.mainloop()

小结

枯燥的生活需要一点小浪漫,哪怕只是转瞬即逝的弹窗。愿你所爱皆如愿,愿你前行皆坦途。

本文已收录到我的技术小站 www.javacn.site,其中包含的内容有:Spring AI、Spring AI Alibaba、LangChain4j、Dify、Coze、N8N、智能体(AI Agent)、MCP、Function Call、RAG、向量数据库、Prompt、多模态、向量数据库、嵌入模型、AI 常见面试问题等内容。

相关推荐
源码之家1 小时前
基于python新闻数据分析可视化系统 Hadoop 新闻平台 爬虫 情感分析 舆情分析 可视化 Django框架 vue框架 机器学习 大数据毕业设计✅
大数据·爬虫·python·数据分析·毕业设计·情感分析·新闻
IT油腻大叔1 小时前
DeepSeek-多层注意力计算机制理解
python·深度学习·机器学习
小呀小萝卜儿1 小时前
2025-11-17 学习记录--Python-机器学习作业:项目1 - PM2.5预测
python·学习·机器学习
闲人编程1 小时前
CPython与PyPy性能对比:不同解释器的优劣分析
python·算法·编译器·jit·cpython·codecapsule
kk哥88991 小时前
PyCharm 2025.1 是什么编程语言,如何安装
python·php
海拥1 小时前
基于 IPIDEA 的 SERP 结构化数据抽取与趋势监控的工程化实践
python
yivifu2 小时前
EPUB文件HTML批量修改避坑
python·epub·zipfile
B站_计算机毕业设计之家2 小时前
python手写数字识别系统 CNN算法 卷积神经网络 OpenCV和Keras模型 计算机视觉 (建议收藏)✅
python·深度学习·opencv·机器学习·计算机视觉·cnn
郝学胜-神的一滴2 小时前
Python高级编程技术深度解析与实战指南
开发语言·python·程序人生·个人开发
charlie1145141912 小时前
使用 Poetry + VS Code 创建你的第一个 Flask 工程
开发语言·笔记·后端·python·学习·flask·教程