Create caring_messages.py
This commit is contained in:
133
2025.10.31_caring_messages/caring_messages.py
Normal file
133
2025.10.31_caring_messages/caring_messages.py
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
"""
|
||||||
|
This code is supported by the website: https://www.guanjihuan.com
|
||||||
|
The newest version of this code is on the web page: https://www.guanjihuan.com/archives/47900
|
||||||
|
"""
|
||||||
|
|
||||||
|
import tkinter as tk
|
||||||
|
import random
|
||||||
|
import threading
|
||||||
|
import time
|
||||||
|
|
||||||
|
class WarmTipApp:
|
||||||
|
def __init__(self):
|
||||||
|
self.total_windows = 150
|
||||||
|
self.created_count = 0
|
||||||
|
self.windows = []
|
||||||
|
self.root = tk.Tk()
|
||||||
|
self.root.withdraw()
|
||||||
|
self.lock = threading.Lock()
|
||||||
|
|
||||||
|
def create_window(self, is_final=False):
|
||||||
|
def _create():
|
||||||
|
window = tk.Toplevel(self.root)
|
||||||
|
screen_width = self.root.winfo_screenwidth()
|
||||||
|
screen_height = self.root.winfo_screenheight()
|
||||||
|
|
||||||
|
if is_final:
|
||||||
|
window_width, window_height = 300, 100
|
||||||
|
x = (screen_width - window_width) // 2
|
||||||
|
y = (screen_height - window_height) // 2
|
||||||
|
bg = 'lightpink'
|
||||||
|
|
||||||
|
frame = tk.Frame(window, bg=bg)
|
||||||
|
frame.pack(fill='both', expand=True)
|
||||||
|
|
||||||
|
tk.Label(frame, text='我想你了', bg=bg, font=('微软雅黑', 20, 'bold'),
|
||||||
|
fg='red').place(relx=0.5, rely=0.5, anchor='center')
|
||||||
|
|
||||||
|
window.protocol("WM_DELETE_WINDOW", lambda: self.quit_app(window))
|
||||||
|
window.title('特别提示')
|
||||||
|
else:
|
||||||
|
window_width, window_height = 300, 100
|
||||||
|
x = random.randint(0, max(0, screen_width - window_width))
|
||||||
|
y = random.randint(0, max(0, screen_height - window_height))
|
||||||
|
|
||||||
|
tips = [
|
||||||
|
# 健康相关
|
||||||
|
'多喝水哦,补充水分很重要',
|
||||||
|
'记得按时吃饭,别饿肚子啦',
|
||||||
|
'久坐了要起来活动活动哦',
|
||||||
|
'晚上别熬夜,早点休息呀',
|
||||||
|
'今天也要记得吃水果呀',
|
||||||
|
'天气变凉了,注意添衣服',
|
||||||
|
'保持良好作息,身体才会棒',
|
||||||
|
'累了就歇一歇,别硬撑呀',
|
||||||
|
|
||||||
|
# 情绪与心态
|
||||||
|
'保持微笑呀,你笑起来很好看',
|
||||||
|
'每天都要元气满满哦',
|
||||||
|
'保持好心情,好运会降临',
|
||||||
|
'不管怎样,好好爱自己最重要',
|
||||||
|
'别给自己太大压力,慢慢来',
|
||||||
|
'遇到不开心的事,记得跟我说',
|
||||||
|
'今天过得开心吗?要多笑笑呀',
|
||||||
|
'烦恼都会过去的,别太在意',
|
||||||
|
|
||||||
|
# 祝福与期待
|
||||||
|
'愿你每天都有小确幸',
|
||||||
|
'梦想一定会成真的',
|
||||||
|
'期待下一次见面呀',
|
||||||
|
'祝你事事顺顺利利',
|
||||||
|
'愿你被世界温柔以待',
|
||||||
|
'今天也要加油呀,你最棒',
|
||||||
|
'无论在哪,都有人惦记着你',
|
||||||
|
'愿所有美好都如期而至',
|
||||||
|
|
||||||
|
# 生活细节
|
||||||
|
'出门记得带钥匙和手机呀',
|
||||||
|
'雨天记得带伞,别淋湿了',
|
||||||
|
'开车要注意安全,慢慢来',
|
||||||
|
'记得给家里打个电话呀',
|
||||||
|
'有空多出去走走,晒晒太阳',
|
||||||
|
'今天也要认真生活呀',
|
||||||
|
'记得整理房间,心情会变好'
|
||||||
|
]
|
||||||
|
bg_colors = ['lightpink', 'skyblue', 'lightgreen', 'lavender', 'lightyellow', 'plum', 'coral', 'bisque', 'aquamarine', 'mistyrose']
|
||||||
|
|
||||||
|
tip = random.choice(tips)
|
||||||
|
bg = random.choice(bg_colors)
|
||||||
|
|
||||||
|
frame = tk.Frame(window, bg=bg)
|
||||||
|
frame.pack(fill='both', expand=True)
|
||||||
|
|
||||||
|
tk.Label(frame, text=tip, bg=bg, font=('微软雅黑', 16),
|
||||||
|
fg='black').place(relx=0.5, rely=0.5, anchor='center')
|
||||||
|
|
||||||
|
window.title('温馨提示')
|
||||||
|
self.windows.append(window)
|
||||||
|
|
||||||
|
window.geometry(f'{window_width}x{window_height}+{x}+{y}')
|
||||||
|
window.attributes('-topmost', True)
|
||||||
|
|
||||||
|
if not is_final:
|
||||||
|
with self.lock:
|
||||||
|
self.created_count += 1
|
||||||
|
if self.created_count == self.total_windows:
|
||||||
|
threading.Thread(target=self.close_all_windows, daemon=True).start()
|
||||||
|
|
||||||
|
self.root.after(0, _create)
|
||||||
|
|
||||||
|
def close_all_windows(self):
|
||||||
|
time.sleep(0.5)
|
||||||
|
for window in self.windows[:]:
|
||||||
|
self.root.after(0, window.destroy)
|
||||||
|
time.sleep(0.01)
|
||||||
|
self.windows.clear()
|
||||||
|
self.root.after(0, lambda: self.create_window(is_final=True))
|
||||||
|
|
||||||
|
def quit_app(self, window):
|
||||||
|
window.destroy()
|
||||||
|
self.root.quit()
|
||||||
|
|
||||||
|
def start(self):
|
||||||
|
def _create_all():
|
||||||
|
for _ in range(self.total_windows):
|
||||||
|
self.create_window()
|
||||||
|
time.sleep(0.1)
|
||||||
|
|
||||||
|
threading.Thread(target=_create_all, daemon=True).start()
|
||||||
|
self.root.mainloop()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
app = WarmTipApp()
|
||||||
|
app.start()
|
||||||
Reference in New Issue
Block a user