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

Written by

in

文章目录
  • 鼓励语列表和主题配置。 鼓励语列表:像“你是最棒的!”“今天也要元气满满哦!”等等。每次弹窗都会随机选一句,就像开盲盒一样。 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”} ]
  • 初始化窗口:这个类创建了一个顶层窗口,去掉边框,让它始终置顶,还设置了一点点透明效果,就像一个梦幻的小泡泡🫧。 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(“220×100”) # 随机 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)
  • 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随机浮动鼓励语弹窗内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: 使用Python Tkinter创建一个动态祝福弹窗的详细教程 利用Python打造一个美观的桌面温馨提醒弹窗 利用Python实现无限弹窗满屏表白的示例代码 Python Tkinter美化弹窗的示例详解 Python使用pycharm实现无限弹窗程序
  • 目录
    • 准备工作:鼓励语和主题
    • 弹窗的诞生:FloatingPopup类
    • 循环:popup_generator函数
    • 项目启动

    鼓励语列表和主题配置。

    • 鼓励语列表:像“你是最棒的!”“今天也要元气满满哦!”等等。每次弹窗都会随机选一句,就像开盲盒一样。
    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"}
    ]
    

    • 初始化窗口:这个类创建了一个顶层窗口,去掉边框,让它始终置顶,还设置了一点点透明效果,就像一个梦幻的小泡泡🫧。
    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)
    

    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随机浮动鼓励语弹窗内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

    您可能感兴趣的文章:

    • 使用Python Tkinter创建一个动态祝福弹窗的详细教程
    • 利用Python打造一个美观的桌面温馨提醒弹窗
    • 利用Python实现无限弹窗满屏表白的示例代码
    • Python Tkinter美化弹窗的示例详解
    • Python使用pycharm实现无限弹窗程序

    站内搜索