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

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秒后自动消失
  • 可随时点击关闭按钮手动关闭

自定义建议

你可以根据自己的喜好进行以下自定义:

  1. 修改提示内容 :编辑tips列表,添加你自己的提示语
  2. 调整配色 :在color_schemes中添加或修改配色方案
  3. 更改显示时间 :修改window.after(5000, ...)中的5000毫秒值
  4. 调整窗口数量 :修改range(5)中的数字来控制窗口数量
  5. 添加动画效果:可以尝试添加淡入淡出等动画效果

技术要点

  • 使用Tkinter创建GUI界面
  • 使用Toplevel创建多个窗口
  • 使用place进行精确布局
  • 使用after实现定时功能
  • 随机化增强用户体验

总结

这个小小的Python程序展示了如何使用Tkinter创建美观实用的桌面应用。它不仅是一个温馨的提醒工具,也是学习Python GUI编程的好例子。你可以在此基础上继续扩展,比如添加设置界面、数据库支持、网络功能等,打造更加强大的个人助手应用。

相关推荐
汤姆yu3 小时前
基于python大数据的特产推荐系统
大数据·开发语言·python
花开花富贵3 小时前
抽象小鱼🐟.
python
四念处茫茫3 小时前
仓颉技术:FFI外部函数接口
开发语言·后端·仓颉技术
金牛大王3 小时前
利用python生成Voronoi图
python
ColderYY3 小时前
Python中的正则表达式
开发语言·python·正则表达式
若疆赤云online3 小时前
SpringGateway处理跨域
java·开发语言
Every exam must be3 小时前
10.27 JS学习12
开发语言·javascript·学习
小叮当⇔4 小时前
知识就是力量——EMQX Dashboard核心规则编写方法及示例
python·iot
雾里云山4 小时前
pgsql常用函数
java·开发语言·数据库·sql