以下是一个使用tkinter库实现的简单电子时钟程序,可以显示当前的时间和日期,可以通过鼠标拖动窗口。也可以关闭
import tkinter as tk
from datetime import datetime
class TransparentClock(tk.Tk):
def __init__(self):
super().__init__()
# 隐藏标题栏
self.overrideredirect(True)
# 设置窗口透明度
self.attributes("-alpha", 0.7)
# 添加标签显示时间和日期
self.label = tk.Label(self, font=("Helvetica", 24), fg="white", bg="black")
self.label.pack(padx=10, pady=5)
# 更新时间和日期
self.update_time()
# 鼠标点击时,记录鼠标位置
self.bind("<Button-1>", self.start_drag)
# 记录窗口位置
self.start_x = 0
self.start_y = 0
# 添加关闭按钮
close_button = tk.Button(self, text="X", command=self.destroy, bg="red", fg="white", font=("Helvetica", 16))
close_button.pack(side="top", anchor="ne")
def update_time(self):
# 获取当前时间和日期
now = datetime.now()
current_time = now.strftime("%H:%M:%S")
current_date = now.strftime("%Y-%m-%d")
# 更新标签文本
self.label.config(text=f"{current_time}\n{current_date}")
# 每1000毫秒更新一次时间
self.after(1000, self.update_time)
def start_drag(self, event):
# 记录鼠标点击的位置
self.start_x = event.x
self.start_y = event.y
# 绑定拖拽事件
self.bind("<B1-Motion>", self.drag_window)
self.bind("<ButtonRelease-1>", self.stop_drag)
def drag_window(self, event):
# 计算窗口移动的距离
delta_x = event.x - self.start_x
delta_y = event.y - self.start_y
# 移动窗口
self.geometry(f"+{self.winfo_x() + delta_x}+{self.winfo_y() + delta_y}")
def stop_drag(self, event):
# 解绑拖拽事件
self.unbind("<B1-Motion>")
self.unbind("<ButtonRelease-1>")
if __name__ == "__main__":
clock = TransparentClock()
clock.mainloop()