tkinter 电子时钟 实现时间日期 可拖动 可关闭

以下是一个使用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()
  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个示例代码,用于创建一个简单的电子时钟,它显示当前的时间日期: ```python import tkinter as tk import time class Clock(tk.Frame): def __init__(self, parent=None, **kw): tk.Frame.__init__(self, parent, kw) self.time_label = tk.Label(self, font=("Helvetica", 48)) self.time_label.pack(side="top", fill="x", padx=50, pady=20) self.date_label = tk.Label(self, font=("Helvetica", 24)) self.date_label.pack(side="top", fill="x", padx=50, pady=10) self.tick() def tick(self): current_time = time.strftime("%H:%M:%S") current_date = time.strftime("%A, %B %d, %Y") self.time_label.config(text=current_time) self.date_label.config(text=current_date) self.time_label.after(200, self.tick) if __name__ == "__main__": root = tk.Tk() root.title("Clock") clock = Clock(root) clock.pack(side="top", fill="both", expand=True) root.mainloop() ``` 这个示例代码使用了 `tkinter` 库来创建一个 `Clock` 类。这个类继承了 `Frame` 类,它包含了两个 `Label` 对象,分别用于显示时间日期。 在 `__init__` 方法中,我们创建了这两个标签,并设置它们的字体。然后,我们调用 `tick` 方法来更新这两个标签的文本,并使用 `after` 方法来定期调用 `tick` 方法,以更新时间日期的显示。 在 `__main__` 方法中,我们创建了一个 `Tk` 对象,并将其命名为 `Clock`。然后,我们创建了一个 `Clock` 对象,并将其放置在 `Tk` 对象中。最后,我们调用 `mainloop` 方法来启动图形界面的事件循环。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yunquantong

你的鼓励是我发布的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值