实验室摸鱼期间写了一个在桌面上可以显示纪念日的小控件,结合上一篇文章读者应该知道为什么写以及给谁写哈哈^-^
首先是获取今天的日期,利用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^!
|