python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python随机浮动鼓励语弹窗

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

作者:码银

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

准备工作:鼓励语和主题

鼓励语列表和主题配置。

messages = [
    "你是最棒的!",
    "今天也要元气满满哦!",
    "记得多喝水呀~",
    "一切都会好起来",
    "你真的超厉害!",
    "加油,别放弃!",
    "休息一下吧~",
    "你值得被喜欢",
    "今天也辛苦了!",
    "未来可期呀!"
]
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))
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随机浮动鼓励语弹窗内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文