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))
将这段代码换成js,弹窗排列方式换成爱心形排列❤