实验室摸鱼期间写了一个在桌面上可以显示纪念日的小控件 结合上一篇文章读者应该知道为什么写以及给谁写哈哈^-^
首先是获取今天的日期 利用datetime库很轻松就可以实现
now datetime.datetime.now()
再者就是计算与指定日期相隔的时间
firstday datetime.datetime.strptime( 2021-09-19 , %Y-%m-%d ) day now - firstday
这样基本的功能已经实现了
后面就是用tkinter制作界面 为了美观 要做到 界面有一定的透明度、界面小巧、最好去掉标题栏
#去掉标题栏 self.overrideredirect(1) #设置透明度(取值范围:[0,1]) self.attributes( -alpha , 0.4)
最后我用了四个label控件来显示内容 其中两个label控件显示的是变量
附上完整代码
import time
import tkinter as tk
import datetime
firstday datetime.datetime.strptime( 2021-09-19 , %Y-%m-%d )
now datetime.datetime.now()
day now - firstday
print(now.date())
class Clock(tk.Tk):
def __init__(self) - None:
super().__init__()
#设置窗口初始位置及大小
self.geometry( 390x60 1530 980 )
#设置窗口置顶
# self.attributes( -topmost , 1)
#初始化时间字符串
self.time_text
#去掉标题栏
self.overrideredirect(1)
#设置透明度(取值范围:[0,1])
self.attributes( -alpha , 0.4)
#添加窗口移动事件
self.bind( B1-Motion ,self.move)
#设置字符标签
self.lbl tk.Label(self, text now.date(), font ( 黑体 , 14), background black , fg red , width 40, height 0).place(x 0, y 0, anchor nw )
self.lbl2 tk.Label(self, text 私たちは , font ( 黑体 , 14), background black , fg red , width 12, height 2).place(x 0, y 20, anchor nw )
self.lbl3 tk.Label(self, text day.days, font ( 黑体 , 14), background black , fg red , width 3, height 2).place(x 100, y 20, anchor nw )
self.lbl4 tk.Label(self, text 日間くらい付き合いました , font ( 黑体 , 14), background black ,fg red , width 27, height 2).place(x 122, y 20, anchor nw )
def move(self, event):
窗口移动事件
self.geometry(f {self.window_size} {(event.x - self.x) self.winfo_x()} {(event.y - self.y) self.winfo_y()} )
def update_time(self):
#设置时间格式
self.lbl.config(text time.strftime( %Y-%m-%d %H:%M:%S ))
#设置更新时间频率
self.after(1000, self.update_time)
def calculate1(self):
day now - firstday
return day.days
# 日期计算
def calculate2(a):
x datetime.timedelta(days a)
day firstday x
return day.date()
#程序主函数
Clock().mainloop()
我把它放在了屏幕的右下角 效果是这样的
利用pyinstaller打包成exe文件。win R 输入msconfig 将打包后的程序快捷方式添加到开机自动项中去 这样开机后 程序会自动在桌面显示。再也不用担心忘记纪念日而被女友暴揍了^0^!



