当前位置: 代码网 > it编程>前端脚本>Python > 利用Python实现随机浮动鼓励语弹窗效果

利用Python实现随机浮动鼓励语弹窗效果

2025年11月19日 Python 我要评论
准备工作:鼓励语和主题鼓励语列表和主题配置。鼓励语列表:像“你是最棒的!”“今天也要元气满满哦!”等等。每次弹窗都会随机选一句,就像开盲盒一样。mess

准备工作:鼓励语和主题

鼓励语列表和主题配置。

  • 鼓励语列表:像“你是最棒的!”“今天也要元气满满哦!”等等。每次弹窗都会随机选一句,就像开盲盒一样。
messages = [
    "你是最棒的!",
    "今天也要元气满满哦!",
    "记得多喝水呀~",
    "一切都会好起来",
    "你真的超厉害!",
    "加油,别放弃!",
    "休息一下吧~",
    "你值得被喜欢",
    "今天也辛苦了!",
    "未来可期呀!"
]
  • 主题配置:这里面有各种不同风格的主题,包括背景颜色(bg)、文字颜色(fg)、按钮颜色(btn)和图标(icon)。每次弹窗都会随机选一个主题🌈。
themes = [
    {"bg": "#fff0f3", "fg": "#e63946", "btn": "#e63946", "icon": "heart"},
    {"bg": "#e0f7fa", "fg": "#0077b6", "btn": "#0077b6", "icon": "star"},
    {"bg": "#f0f4f8", "fg": "#2a6fdb", "btn": "#2a6fdb", "icon": "smile"},
    {"bg": "#f8f9fa", "fg": "#6c757d", "btn": "#6c757d", "icon": "thumbsup"},
    {"bg": "#f0fff4", "fg": "#2e7d32", "btn": "#2e7d32", "icon": "leaf"},
    {"bg": "#fff8e1", "fg": "#ff8f00", "btn": "#ff8f00", "icon": "sun"}
]

弹窗的诞生:floatingpopup类

  • 初始化窗口:这个类创建了一个顶层窗口,去掉边框,让它始终置顶,还设置了一点点透明效果,就像一个梦幻的小泡泡🫧。
def __init__(self, master=none):
    self.window = tk.toplevel(master)
    self.window.overrideredirect(true) 
    self.window.attributes("-topmost", true) 
    self.window.attributes("-alpha", 0.95) 
  • 随机主题和位置:从主题配置里随机选一个主题,然后把弹窗随机放到屏幕的某个位置🤩。
self.theme = random.choice(themes)
self.window.configure(bg=self.theme["bg"])
self.window.geometry("220x100") 
# 随机
self.set_random_position()
  • 创建弹窗内容:弹窗里有图标、鼓励语和关闭按钮。图标用文字代替,鼓励语也是随机选的,按钮一点就可以关闭弹窗啦。
# 顶部框架
top_frame = tk.frame(self.window, bg=self.theme["bg"])
top_frame.pack(fill="x", padx=15, pady=(10, 5))
# 图标
icon_map = {"heart": "❤️", "star": "⭐", "smile": "😊", "thumbsup": "👍", "leaf": "🍃", "sun": "☀️"}
icon_label = tk.label(
    top_frame,
    text=icon_map[self.theme["icon"]],
    font=("arial", 14),
    bg=self.theme["bg"],
    fg=self.theme["fg"]
)
icon_label.pack(side="left", padx=(0, 8))
# 文字
self.message = random.choice(messages)
text_label = tk.label(
    top_frame,
    text=self.message,
    font=font.font(family="simhei", size=11, weight="bold"),
    bg=self.theme["bg"],
    fg=self.theme["fg"],
    wraplength=160,
    justify="left"
)
text_label.pack(side="left", fill="x", expand=true)
# 按钮
btn = tk.button(
    self.window,
    text="知道啦",
    bg=self.theme["btn"],
    fg="white",
    bd=0,
    padx=10,
    pady=2,
    font=font.font(size=9),
    command=self.window.destroy  
)
btn.pack(pady=(5, 10))
  • 淡入动画和自动关闭:弹窗出现的时候会有一个淡入的动画效果,就像慢慢浮现出来一样✨。20秒后自动关闭,当然你也可以手动点击按钮关闭。
def fade_in(self):
    for i in range(1, 11):
        self.window.attributes("-alpha", i / 10)
        self.window.update()
        time.sleep(0.03)
    # 20秒后自动关闭(也可手动点击关闭)
    self.window.after(20000, self.window.destroy)

循环:popup_generator函数

while循环,每隔1 - 2秒就随机生成一个新的弹窗,“弹窗雨”。

def popup_generator():
    # 循环生成弹窗
    while true:
        # 随机间隔1-2秒生成一个新弹窗
        interval = random.uniform(1, 2)
        time.sleep(interval)
        # 在主线程中创建弹窗
        root.after(0, floatingpopup)

项目启动

最后,咱们来启动这个项目吧。先隐藏主窗口,然后启动一个线程来运行popup_generator函数,这样弹窗就会一个接一个地出现啦。如果想退出,按ctrl + c就可以咯。

if __name__ == "__main__":
    root = tk.tk()
    root.withdraw()  
    # 启动弹窗生成线程
    thread = threading.thread(target=popup_generator, daemon=true)
    thread.start()
    print("弹窗已启动,按ctrl+c退出")
    try:
        root.mainloop()
    except keyboardinterrupt:
        root.destroy()

大家也可以自己动手改改鼓励语或者主题,让它变得更符合自己的口味哦!

到此这篇关于利用python实现随机浮动鼓励语弹窗效果的文章就介绍到这了,更多相关python随机浮动鼓励语弹窗内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com