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

 更新时间:2025年11月19日 08:50:35   作者:码银  
本文介绍了如何使用Python实现一个随机浮动鼓励语弹窗效果,该弹窗会显示随机的鼓励语和主题,每隔1-2秒自动生成一个新的弹窗,直到用户手动关闭或按Ctrl+C退出,开发者可以自定义鼓励语和主题以满足自己的需求,感兴趣的小伙伴跟着小编一起来看看吧

准备工作:鼓励语和主题

鼓励语列表和主题配置。

  • 鼓励语列表:像“你是最棒的!”“今天也要元气满满哦!”等等。每次弹窗都会随机选一句,就像开盲盒一样。
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随机浮动鼓励语弹窗内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Django视图层与模板层实例详解

    Django视图层与模板层实例详解

    这篇文章主要为大家介绍了Django视图层与模板层实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪<BR>
    2022-09-09
  • python编写猜数字小游戏

    python编写猜数字小游戏

    这篇文章主要为大家详细介绍了python编写猜数字小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • 对pyqt5之menu和action的使用详解

    对pyqt5之menu和action的使用详解

    今天小编就为大家分享一篇对pyqt5之menu和action的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • pytest+allure环境搭建+自动化实践过程

    pytest+allure环境搭建+自动化实践过程

    这篇文章主要介绍了pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • python如何随机生成高强度密码

    python如何随机生成高强度密码

    这篇文章主要为大家详细介绍了python随机生成高强度密码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • python pandas修改列属性的方法详解

    python pandas修改列属性的方法详解

    今天小编就为大家分享一篇python pandas修改列属性的方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python连接PostgreSQL数据库并查询数据的详细指南

    Python连接PostgreSQL数据库并查询数据的详细指南

    在现代软件开发中,数据库是存储和检索数据的核心组件,PostgreSQ是一个功能强大的开源对象关系数据库系统,它以其稳定性、强大的功能和灵活性而闻名,Python作为一种流行的编程语言,与PostgreSQL的结合使用非常广泛,本文介绍了Python连接PostgreSQL数据库并查询数据
    2024-12-12
  • 使用Python实现windows下的抓包与解析

    使用Python实现windows下的抓包与解析

    这篇文章主要介绍了使用Python实现windows下的抓包与解析,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-01-01
  • python3中获取文件当前绝对路径的两种方法

    python3中获取文件当前绝对路径的两种方法

    下面小编就为大家分享一篇python3中获取文件当前绝对路径的两种方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python操作Excel神器openpyxl使用教程(超详细!)

    Python操作Excel神器openpyxl使用教程(超详细!)

    openpyxl库是一个很好处理xlsx的python库,下面这篇文章主要给大家介绍了关于Python办公自动化openpyxl使用的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01

最新评论