Python打造美观的桌面温馨提醒弹窗



功能亮点
- 🎨 美观的UI设计:采用现代化配色方案,柔和而不刺眼
- 🎯 随机位置显示:每次出现在屏幕不同位置,避免视觉疲劳
- 💫 多样化内容:丰富的提示语和emoji图标
- ⏱️ 自动管理:几秒后自动关闭,不干扰工作
- 🖱️ 交互便捷:支持点击关闭,用户体验良好
源码如下:
python
import random
import time
import tkinter as tk
from tkinter import ttk
import os
# 抑制libpng警告
os.environ['TK_SILENCE_DEPRECATION'] = '1'
def create_beautiful_tip():
# 创建窗口
window = tk.Toplevel()
# 获取屏幕宽高
screen_width = window.winfo_screenwidth()
screen_height = window.winfo_screenheight()
# 窗口尺寸和位置
window_width = 300
window_height = 120
x = random.randint(100, screen_width - window_width - 100)
y = random.randint(100, screen_height - window_height - 100)
# 窗口设置
window.geometry(f"{window_width}x{window_height}+{x}+{y}")
window.resizable(False, False)
window.attributes('-topmost', True)
# 颜色方案
bg_colors = [
{'bg': '#FFE4E6', 'fg': '#BE123C', 'accent': '#FB7185'},
{'bg': '#F0F9FF', 'fg': '#0369A1', 'accent': '#0EA5E9'},
{'bg': '#F0FDF4', 'fg': '#15803D', 'accent': '#22C55E'},
{'bg': '#FEF7CD', 'fg': '#854D0E', 'accent': '#EAB308'},
{'bg': '#FAF5FF', 'fg': '#7C3AED', 'accent': '#A855F7'},
]
scheme = random.choice(bg_colors)
# 设置窗口背景
window.configure(bg=scheme['bg'])
# 提示文字
tips = [
'💧 记得多喝水哦~', '😊 保持微笑,好运自然来', '✨ 今天也要元气满满!',
'🍎 多吃水果身体好', '🌞 保持好心情最重要', '💝 好好爱自己呀',
'💌 有人在想你哦~', '🎯 梦想一定会成真', '🤗 期待下一次见面',
'🌈 一切都会顺顺利利', '🌙 早点休息别熬夜', '🍀 今天过得开心吗?',
'🧥 天冷了,记得添衣', '📚 学习工作要劳逸结合', '🎵 听首歌放松一下吧',
'🌿 出去走走,呼吸新鲜空气', '💪 你是最棒的!', '🎨 保持创造力',
'🤝 记得联系老朋友', '🍫 适当奖励自己', '🌺 闻闻花香,心情变好'
]
tip = random.choice(tips)
# 创建内容
# 图标
icons = ['💕', '✨', '🌟', '🎀', '🌷', '🌸', '🍀']
icon_label = tk.Label(
window,
text=random.choice(icons),
bg=scheme['bg'],
fg=scheme['accent'],
font=('Arial', 20)
)
icon_label.place(x=20, y=30)
# 提示文字
tip_label = tk.Label(
window,
text=tip,
bg=scheme['bg'],
fg=scheme['fg'],
font=('微软雅黑', 12),
wraplength=200,
justify='left'
)
tip_label.place(x=60, y=30)
# 关闭按钮
close_btn = tk.Button(
window,
text='关闭',
bg=scheme['accent'],
fg='white',
font=('微软雅黑', 9),
command=window.destroy,
relief='flat',
bd=0
)
close_btn.place(x=window_width - 60, y=window_height - 30, width=50, height=25)
# 5秒后自动关闭
window.after(5000, window.destroy)
def main():
# 创建主窗口但不显示
root = tk.Tk()
root.withdraw()
# 创建多个提示窗口
for i in range(300): # 创建5个窗口
create_beautiful_tip()
root.update() # 更新GUI
time.sleep(0.5) # 间隔0.5秒
# 退出程序
root.after(100000, root.destroy)
root.mainloop()
if __name__ == '__main__':
main()
代码解析
1. 环境设置与导入
python
import random
import time
import tkinter as tk
import os
os.environ['TK_SILENCE_DEPRECATION'] = '1'
这里我们导入了必要的库,并设置环境变量来抑制Tkinter可能产生的libpng警告。
2. 弹窗创建函数
create_beautiful_tip() 函数是程序的核心,负责创建单个提示窗口:
python
def create_beautiful_tip():
window = tk.Toplevel()
# 获取屏幕尺寸并计算随机位置
screen_width = window.winfo_screenwidth()
screen_height = window.winfo_screenheight()
# ... 窗口设置代码
我们使用Toplevel()创建新窗口,而不是Tk(),这样可以在一个主程序下创建多个窗口。
3. 美观的配色方案
python
color_schemes = [
{'bg': '#FFE4E6', 'fg': '#BE123C', 'accent': '#FB7185'}, # 粉色系
{'bg': '#F0F9FF', 'fg': '#0369A1', 'accent': '#0EA5E9'}, # 蓝色系
# ... 更多配色
]
scheme = random.choice(color_schemes)
我们定义了几组协调的配色方案,每次随机选择一组,使每个窗口都有独特的视觉效果。
4. 内容布局
python
# 图标
icon_label = tk.Label(
window,
text=random.choice(icons),
bg=scheme['bg'],
fg=scheme['accent'],
font=('Arial', 20)
)
icon_label.place(x=20, y=30)
# 提示文字
tip_label = tk.Label(
window,
text=tip,
bg=scheme['bg'],
fg=scheme['fg'],
font=('微软雅黑', 12),
wraplength=200,
justify='left'
)
tip_label.place(x=60, y=30)
使用place几何管理器精确定位图标和文字,确保布局整齐美观。
5. 自动关闭机制
python
window.after(5000, window.destroy)
使用Tkinter的after方法设置5秒后自动关闭窗口,避免窗口一直占用屏幕空间。
运行效果
运行程序后,屏幕上会依次出现5个美观的提示窗口,每个窗口:
- 显示随机选择的温馨话语
- 使用随机配色方案
- 出现在屏幕随机位置
- 5秒后自动消失
- 可随时点击关闭按钮手动关闭
自定义建议
你可以根据自己的喜好进行以下自定义:
- 修改提示内容 :编辑
tips列表,添加你自己的提示语 - 调整配色 :在
color_schemes中添加或修改配色方案 - 更改显示时间 :修改
window.after(5000, ...)中的5000毫秒值 - 调整窗口数量 :修改
range(5)中的数字来控制窗口数量 - 添加动画效果:可以尝试添加淡入淡出等动画效果
技术要点
- 使用
Tkinter创建GUI界面 - 使用
Toplevel创建多个窗口 - 使用
place进行精确布局 - 使用
after实现定时功能 - 随机化增强用户体验
总结
这个小小的Python程序展示了如何使用Tkinter创建美观实用的桌面应用。它不仅是一个温馨的提醒工具,也是学习Python GUI编程的好例子。你可以在此基础上继续扩展,比如添加设置界面、数据库支持、网络功能等,打造更加强大的个人助手应用。