代码是基于 Python 的
tkinter库开发的 “温暖提示弹窗” 程序,功能是在屏幕上批量生成带有暖心话语的随机弹窗,营造温馨的视觉效果。
程序的核心目标是通过大量随机样式的弹窗,展示温暖提示语(如天气保暖、生活关怀等),给用户带来视觉上的温馨感。设计上采用了 “随机性” 增强趣味性:弹窗的大小、位置、颜色、文字内容等均随机生成,同时加入淡入动画提升体验。
代码通过
WarmPopup类封装了所有功能,主要包含以下部分:
__init__方法)
self.root.withdraw()隐藏
tkinter默认的主窗口,只显示后续生成的弹窗。提示语列表:定义了 25 条温暖提示语(如 “天气转凉啦,记得多喝热水哦~”),内容聚焦于日常关怀,减少重复概率。颜色方案:预设 12 种柔和温暖的颜色(如
#FF6B6B粉色、
#FFB86C暖黄),避免刺眼色调。字体设置:统一使用 “Microsoft YaHei”(微软雅黑),保证中文显示清晰。
create_popup方法)此方法负责生成单个弹窗,包含丰富的随机化设计:
窗口样式: 随机大小:宽 180-340 像素,高 90-170 像素,避免单调。随机位置:在屏幕内随机分布(边缘预留 20 像素,防止超出屏幕)。随机透明度:透明度 0.85-1.0,增强层次感。随机背景色:从预设颜色列表中随机选择,搭配白色文字,对比清晰。 内容排版: 随机提示语:从 25 条中随机选取一条,确保内容多样。文字样式:微软雅黑字体,大小 12-16 号(加粗),自动换行(
wraplength),边距留白(
padx/
pady),排版更舒适。关闭按钮:统一设计为 “收到啦” 按钮,白色背景 + 弹窗同色文字,点击可关闭当前弹窗。
淡入动画:通过逐步提高透明度(从 0 到目标值的 5 步渐变),让弹窗平滑显示,提升视觉体验。
show_multiple_popups方法)
Ctrl+C手动终止程序,自动关闭所有已生成的弹窗,防止残留。
if __name__ == "__main__":)
Ctrl+C)。初始化主窗口并启动弹窗生成流程。
count参数减少弹窗数量(如改为 50)。中断方式:若需提前结束,在运行程序的终端 / 命令行中按
Ctrl+C即可终止,避免强制关机。
这段代码通过
tkinter的 GUI 功能,结合随机化设计和简单动画,实现了 “批量温暖提示弹窗” 的效果,逻辑清晰,细节处理较为完善,适合作为趣味小程序体验。
代码实现
import tkinter as tk
from tkinter import font
import random
import time
import sys
class WarmPopup:
def __init__(self, root):
self.root = root
self.root.withdraw() # 隐藏主窗口
# 温暖提示语列表(扩充至25条,减少重复)
self.messages = [
"天气转凉啦,记得多喝热水哦~",
"冷空气来了,出门要加件外套呀!",
"双手冰冰的?快去倒杯温水暖暖吧",
"今天有点冷,要不要来杯热奶茶?",
"注意保暖,别感冒啦,我会担心的~",
"天气冷的时候,一杯热水就是最好的安慰",
"记得泡个热水脚,暖暖地睡个好觉",
"冷空气来袭,照顾好自己最重要",
"多喝热水,让身体从里到外都暖暖的",
"天冷了,给自己一个温暖的拥抱吧",
"别只要风度哦,温度也很重要呀",
"喝口热水,瞬间感觉暖和多了吧",
"寒冷的日子里,更要好好爱自己",
"添件衣服,喝杯热水,简单的幸福",
"冷空气路过,记得做好保暖措施呀",
"风大降温啦,围巾手套别忘带~",
"一碗热汤下肚,全身都暖和啦",
"天冷也要保持开心,心情暖才是真的暖",
"睡前喝杯温牛奶,助眠又保暖",
"记得关紧窗户,别让冷空气偷偷进来",
"外面好冷呀,待在屋里最舒服啦",
"把暖气打开,瞬间就温暖起来了",
"天冷适合窝在沙发里看一部暖心的电影",
"记得给家人也说一声:天冷加衣哦",
"寒风再大,有温暖的牵挂就不冷啦"
]
# 温暖的颜色方案(优化色调,更显柔和温暖)
self.colors = [
"#FF6B6B", "#FF8E8E", "#FFB86C", "#FFD166",
"#06D6A0", "#118AB2", "#073B4C", "#9B5DE5",
"#F72585", "#4361EE", "#FB8500", "#FFB703"
]
# 统一使用微软雅黑字体
self.font_family = "Microsoft YaHei"
def create_popup(self):
# 创建新窗口
popup = tk.Toplevel(self.root)
popup.overrideredirect(False) # 带边框,可关闭
# 随机大小(增加尺寸范围多样性)
width = random.randint(180, 340)
height = random.randint(90, 170)
popup.geometry(f"{width}x{height}")
# 随机位置(确保在屏幕内,边缘留出空间)
screen_width = self.root.winfo_screenwidth()
screen_height = self.root.winfo_screenheight()
x = random.randint(20, screen_width - width - 20)
y = random.randint(20, screen_height - height - 20)
popup.geometry(f"+{x}+{y}")
# 随机透明度(略提高透明度下限,增强层次感)
alpha = random.uniform(0.85, 1.0)
popup.attributes("-alpha", alpha)
# 随机背景色
bg_color = random.choice(self.colors)
popup.configure(bg=bg_color)
# 统一微软雅黑字体,随机大小(保持可读性)
font_size = random.randint(12, 16)
custom_font = font.Font(family=self.font_family, size=font_size, weight="bold")
# 随机选择提示语
message = random.choice(self.messages)
# 添加文本(优化排版)
label = tk.Label(
popup,
text=message,
bg=bg_color,
fg="white",
font=custom_font,
wraplength=width - 30, # 增加边距,避免文字贴边
padx=15,
pady=15,
justify="center"
)
label.pack(expand=True, fill="both")
# 添加关闭按钮(统一风格)
close_btn = tk.Button(
popup,
text="收到啦",
bg="white",
fg=bg_color,
font=font.Font(family=self.font_family, size=10, weight="bold"),
command=popup.destroy,
relief=tk.RAISED,
padx=10,
pady=2
)
close_btn.pack(pady=8)
# 优化淡入动画(更快更流畅)
for i in range(1, 6):
popup.attributes("-alpha", alpha * i / 5)
popup.update()
time.sleep(0.008) # 加速淡入过程
return popup
def show_multiple_popups(self, count=600, delay=0.015): # 进一步增加数量,加快速度
popups = []
try:
for i in range(count):
# 每显示40个弹窗增加短暂延迟,平衡性能
if i % 40 == 0 and i > 0:
time.sleep(0.2)
popup = self.create_popup()
popups.append(popup)
time.sleep(delay)
# 保持主循环响应
self.root.update_idletasks()
self.root.update()
except KeyboardInterrupt:
print("用户中断操作")
for popup in popups:
popup.destroy()
self.root.destroy()
sys.exit()
if __name__ == "__main__":
print("温馨提示:600个弹窗可能会影响系统性能,正在准备显示...")
print("如果需要提前结束,可按 Ctrl+C")
root = tk.Tk()
root.title("温暖提示")
# 全部使用微软雅黑字体,弹窗数量600个,间隔0.015秒
warm_popup = WarmPopup(root)
warm_popup.show_multiple_popups(count=600, delay=0.015)
root.mainloop()
效果截图

¥88.80
争霸联考7石膏头像临摹范本 2023烈公文化郭健人物石膏五官挂像团块铺色结构大关系完整稿石膏像画册美术高考联考教材教程书籍
¥64.50
深入解析C#(第4版) 乔恩·斯基特C#6C#7C#程序设计教程零基础自学编程开发指南入门经典基础程序设计教材书籍从入门到精通正版书籍
¥45.00
正版现货 NPR播客入门指南:创建、启动和增长 格伦威尔顿 生命周期4个基本环节 想象计划制作分享基础教程教材书籍 电子工业出版社
¥19.80
马克笔漫画临摹卡美少男视频同步动漫人物绘画教程书男生少年手绘头像二次元q版卡通美术画画零基础入门插画技法日本线稿步骤上色
¥49.90
漫画Java 关东升 java编程入门零基础自学教程 java程序设计编程漫画编程真好玩编程书 计算机网络程序设计人民邮电出版社正版书籍
¥94.80
最强基本功2素描头像临摹范本 2022烈公文化郭宏亮人物基础团结起形铺色大关系完整稿头带手半身像对照美术高考联考教材教程书籍