python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python祝福提示框

抖音热榜Python祝福提示框小项目教程(附详细代码)

作者:Mrliu__

Python是一种功能强大且灵活的编程语言,广泛应用于各种领域,包括Web开发、数据科学、人工智能等,高级Python祝福代码可以结合多种高级特性,使得代码更加简洁、高效和易读,这篇文章主要介绍了抖音热榜Python祝福提示框小项目的相关资料,需要的朋友可以参考下

1.前言

在生日等特殊节日,人们常希望用新颖、有仪式感的方式传递祝福。传统的文字或图片祝福形式较为单一,难以营造热闹、温馨的氛围。
本程序基于 Python 的 tkinter 库开发,通过多线程技术实现大量生日祝福弹窗的随机弹出。每个弹窗拥有随机的祝福语、背景色和字体色,能在屏幕上均匀分布,可帮助用户为妈妈等亲友打造极具惊喜感的生日祝福场景,操作简单且可灵活自定义内容。

2.分段阐述代码原理

以下是每一行代码的详细解释:

2.1导入模块部分

import tkinter as tk  # 导入tkinter库,用于创建GUI窗口,并用别名tk简化调用
import random  # 导入random库,用于生成随机数、随机选择元素
import threading  # 导入threading库,用于创建多线程(实现同时弹出多个窗口)
import time  # 导入time库,用于控制程序休眠(控制弹窗间隔时间)

2.2 定义数据列表部分

# 定义温馨提示语列表(存储所有生日祝福文案)
tips = [
    "妈妈,生日快乐!",
    "祝您身体健康健康,笑口常开!",
    # ... 省略中间14条祝福语 ...
    "妈妈,生日快乐!每天都要笑得这么甜哦~"
]

# 定义背景颜色列表(存储柔和的背景色,用十六进制颜色码表示)
bg_colors = [
    '#FFCCD5', '#C5E3ED', '#D4F1F4', '#E9E4F0',
    # ... 省略中间8种颜色 ...
    '#FFEAEA', '#F0F7FF'
]

# 定义字体颜色列表(存储与背景色对比明显的字体颜色)
font_colors = [
    '#D81F26', '#00529B', '#137333', '#5C2D91',
    # ... 省略中间4种颜色 ...
    '#4A5568'
]

2.3 核心功能函数:显示祝福弹窗

def show_warm_tip():  # 定义函数,用于创建并显示一个祝福弹窗
    # 随机选择提示语、背景色和字体颜色(从上面定义的列表中随机挑选)
    tip = random.choice(tips)
    bg_color = random.choice(bg_colors)
    font_color = random.choice(font_colors)

    # 创建临时窗口获取屏幕信息(因为获取屏幕尺寸需要一个tkinter实例)
    temp = tk.Tk()  # 创建临时主窗口
    screen_width = temp.winfo_screenwidth()  # 获取屏幕宽度(像素)
    screen_height = temp.winfo_screenheight()  # 获取屏幕高度(像素)
    temp.destroy()  # 关闭临时窗口(用完即弃)

    # 固定窗口大小为300x150像素
    win_width = 300
    win_height = 150

    # 计算窗口随机位置(确保窗口不超出屏幕范围)
    max_x = screen_width - win_width  # 窗口x坐标最大值(避免右侧超出屏幕)
    max_y = screen_height - win_height  # 窗口y坐标最大值(避免底部超出屏幕)
    x = random.randint(0, max_x)  # 随机生成x坐标(0到max_x之间)
    y = random.randint(0, max_y)  # 随机生成y坐标(0到max_y之间)

    # 创建弹窗窗口(Toplevel表示子窗口,可独立于主窗口存在)
    window = tk.Toplevel()
    window.title("生日祝福")  # 设置窗口标题
    # 设置窗口大小和位置:"宽x高+x坐标+y坐标"
    window.geometry(f"{win_width}x{win_height}+{x}+{y}")
    window.attributes("-topmost", True)  # 窗口置顶(始终显示在其他窗口上方)
    window.configure(bg=bg_color)  # 设置窗口背景色

    # 在窗口中添加祝福文字标签
    tk.Label(
        window,  # 父窗口(文字显示在这个弹窗里)
        text=tip,  # 显示的文字内容(随机选的祝福语)
        bg=bg_color,  # 标签背景色(与窗口背景一致)
        fg=font_color,  # 文字颜色(随机选的字体色)
        font=("Microsoft YaHei UI", 14, "bold"),  # 字体设置:微软雅黑、14号、加粗
        wraplength=win_width - 40,  # 文字换行宽度(距离窗口两侧各20像素)
        padx=20,  # 标签左右内边距(20像素)
        pady=20  # 标签上下内边距(20像素)
    ).pack(expand=True)  # 放置标签,并让其在窗口中居中扩展

    # 添加关闭按钮
    tk.Button(
        window,  # 父窗口(按钮显示在这个弹窗里)
        text="谢谢",  # 按钮文字
        command=window.destroy,  # 点击按钮触发的事件:关闭当前窗口
        font=("Microsoft YaHei UI", 10),  # 按钮文字字体:微软雅黑、10号
        bg="#FFD700",  # 按钮背景色(金色)
        fg="#333333",  # 按钮文字色(深灰色)
        padx=10,  # 按钮左右内边距(10像素)
        pady=2  # 按钮上下内边距(2像素)
    ).pack(pady=10)  # 放置按钮,底部外边距10像素

    window.mainloop()  # 启动窗口的事件循环(让窗口保持显示并响应操作)

2.4 主程序执行部分

if __name__ == "__main__":  # 当程序直接运行时执行以下代码(而非被导入时)
    total_windows = 50000  # 要弹出的弹窗总数(5万个)
    for i in range(total_windows):  # 循环生成指定数量的弹窗
        # 创建线程:每个弹窗由单独的线程执行(避免单个窗口阻塞其他窗口)
        t = threading.Thread(target=show_warm_tip)  # 线程目标函数是show_warm_tip
        t.daemon = True  # 设置为守护线程:主线程结束后,子线程自动退出
        t.start()  # 启动线程(执行弹窗函数)
        # 控制弹窗间隔:随机休眠0.005到0.010秒(避免所有窗口同时弹出)
        time.sleep(random.uniform(0.005, 0.010))

2.5 程序整体功能

该程序会在屏幕上随机位置持续弹出大量生日祝福窗口,每个窗口有随机的祝福语、背景色和字体色,窗口大小固定,带有"谢谢"关闭按钮,通过多线程实现快速批量弹出,营造热闹的祝福氛围。

3. 代码示例

import tkinter as tk
import random
import threading
import time

# 定义温馨提示语列表
tips = [
    "妈妈,生日快乐!",
    "祝您身体健康健康,笑口常开!",
    "愿您岁岁有今朝,年年都精彩!",
    "生日快乐呀,每天都要开开心心!",
    "祝您福如东海,寿比南山!",
    "愿美好常伴您左右,生日快乐!",
    "祝您生日愉悦,万事顺遂!",
    "妈妈,生日快乐,青春永驻!",
    "妈妈,生日快乐!身体健康,万事如意!",
    "祝 妈妈 福如东海,寿比南山!",
    "愿 妈妈 每天都开开心心,笑容常在!",
    "生日快乐!希望您每天都像今天一样幸福!",
    "祝 妈妈,青春永驻,健康平安!",
    "妈妈,生日快乐!愿所有美好都围绕着您~",
    "生日快乐呀!祝您年年有今日,岁岁有今朝!",
    "愿 妈妈 的生活像花儿一样灿烂,生日快乐!",
    "祝 妈妈,生日快乐,家庭幸福,万事顺意!",
    "妈妈,生日快乐!每天都要笑得这么甜哦~"
]

# 定义背景颜色列表(更多柔和色彩选择)
bg_colors = [
    '#FFCCD5', '#C5E3ED', '#D4F1F4', '#E9E4F0',
    '#FFF8E6', '#FFE8D6', '#F1ECC3', '#D6EFD8',
    '#FFE6E6', '#E8F4F8', '#FFF0F3', '#F5F3FF',
    '#FFF5E6', '#E6F7F0', '#FFEAEA', '#F0F7FF'
]

# 定义字体颜色列表(与背景色形成良好对比)
font_colors = [
    '#D81F26', '#00529B', '#137333', '#5C2D91',
    '#C8553D', '#E67E22', '#718096', '#4A5568'
]


def show_warm_tip():
    # 随机选择提示语、背景色和字体颜色
    tip = random.choice(tips)
    bg_color = random.choice(bg_colors)
    font_color = random.choice(font_colors)

    # 创建临时窗口获取屏幕信息
    temp = tk.Tk()
    screen_width = temp.winfo_screenwidth()
    screen_height = temp.winfo_screenheight()
    temp.destroy()

    # 需求一:固定窗口大小(统一为300x150)
    win_width = 300
    win_height = 150

    # 需求二:全屏均匀随机分布算法
    # 1. 确保窗口不会超出屏幕范围
    max_x = screen_width - win_width
    max_y = screen_height - win_height

    # 2. 完全随机分布,覆盖整个屏幕
    x = random.randint(0, max_x)
    y = random.randint(0, max_y)

    # 创建弹窗
    window = tk.Toplevel()
    window.title("生日祝福")
    window.geometry(f"{win_width}x{win_height}+{x}+{y}")
    window.attributes("-topmost", True)  # 窗口置顶
    window.configure(bg=bg_color)

    # 需求三:美观字体设置
    # 使用更优雅的字体和合适的大小,添加加粗效果
    tk.Label(
        window,
        text=tip,
        bg=bg_color,
        fg=font_color,  # 字体颜色
        font=("Microsoft YaHei UI", 14, "bold"),  # 美观字体设置
        wraplength=win_width - 40,  # 自动换行
        padx=20,
        pady=20
    ).pack(expand=True)

    # 添加关闭按钮
    tk.Button(
        window,
        text="谢谢",
        command=window.destroy,
        font=("Microsoft YaHei UI", 10),
        bg="#FFD700",
        fg="#333333",
        padx=10,
        pady=2
    ).pack(pady=10)

    window.mainloop()


if __name__ == "__main__":
    # 控制弹窗数量和弹出间隔
    total_windows = 50000  # 弹窗总数
    for i in range(total_windows):
        t = threading.Thread(target=show_warm_tip)
        t.daemon = True  # 主线程结束后自动退出
        t.start()
        # 随机间隔时间,避免过于规律
        time.sleep(random.uniform(0.005, 0.010))

注意:可以通过自己想要的颜色话语去修改代码

4. 输出结果

注意事项:需要点击程序结束这些小窗口才会退出,否则只能在任务管理器终止Pycharm,最次的方法也是关机重启

5. 总结

到此这篇关于抖音热榜Python祝福提示框小项目的文章就介绍到这了,更多相关Python祝福提示框内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文