tkinter实现电子时钟

一 代码

  1. import tkinter
  2. import threading
  3. import datetime
  4. import time
  5. app = tkinter.Tk()
  6. app.overrideredirect(True)#不显示标题栏
  7. app.attributes('-alpha',0.9)#半透明
  8. app.attributes('-topmost',1)#总是在顶端
  9. app.geometry('110x25+100+100')#初始大小与位置
  10. labelDateTime = tkinter.Label(app)
  11. labelDateTime.pack(fill=tkinter.BOTH, expand=tkinter.YES)
  12. labelDateTime.configure(bg ='gray')
  13. X = tkinter.IntVar(value=0)#记录鼠标左键按下的位置
  14. Y = tkinter.IntVar(value=0)
  15. canMove = tkinter.IntVar(value=0)#窗口是否可拖动
  16. still = tkinter.IntVar(value=1)#是否仍在运行
  17. def onLeftButtonDown(event):
  18. app.attributes('-alpha',0.4)#开始拖动时增加透明度
  19. X.set(event.x)#鼠标左键按下,记录当前位置
  20. Y.set(event.y)
  21. canMove.set(1)#并标记窗口可拖动
  22. labelDateTime.bind('<Button-1>', onLeftButtonDown)
  23. def onLeftButtonUp(event):
  24. app.attributes('-alpha',0.9)#停止拖动时恢复透明度
  25. canMove.set(0)#鼠标左键抬起,标记窗口不可拖动
  26. labelDateTime.bind('<ButtonRelease-1>', onLeftButtonUp)
  27. def onLeftButtonMove(event):
  28. if canMove.get()==0:
  29. return
  30. newX = app.winfo_x()+(event.x-X.get())
  31. newY = app.winfo_y()+(event.y-Y.get())
  32. g ='110x25+'+str(newX)+'+'+str(newY)
  33. app.geometry(g)#修改窗口的位置
  34. labelDateTime.bind('<B1-Motion>', onLeftButtonMove)
  35. def onRightButtonDown(event):
  36. still.set(0)
  37. t.join(0.2)
  38. app.destroy()#关闭窗口
  39. labelDateTime.bind('<Button-3>', onRightButtonDown)
  40. def nowDateTime():
  41. while still.get()==1:
  42. now = datetime.datetime.now()
  43. s = str(now.year)+'-'+str(now.month)+'-'+str(now.day)+' '
  44. s = s+str(now.hour)+':'+str(now.minute)+':'+str(now.second)
  45. labelDateTime['text']= s #显示当前时间
  46. time.sleep(0.2)
  47. t = threading.Thread(target=nowDateTime)
  48. t.daemon =True
  49. t.start()
  50. app.mainloop()
二 运行结果

 
  • 大小: 1.2 KB
  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
以下是一个简单的Python程序,使用Tkinter实现了一个基本的电子时钟。 ```python import tkinter as tk import time class Clock: def __init__(self, master): self.master = master self.master.title("电子时钟") self.master.geometry("250x100") self.clock_label = tk.Label(self.master, font=('times', 20, 'bold'), bg='white') self.clock_label.pack(fill=tk.BOTH, expand=1) self.update_clock() def update_clock(self): current_time = time.strftime('%H:%M:%S') self.clock_label.config(text=current_time) self.master.after(1000, self.update_clock) if __name__ == '__main__': root = tk.Tk() clock = Clock(root) root.mainloop() ``` 这个程序使用了Tkinter库来创建一个窗口和文本标签,用于显示当前时间。在构造函数中,我们创建了一个标签并设置了字体、背景颜色和文本。我们还调用了`update_clock()`函数,该函数使用`after()`方法来定期更新时钟。`after()`方法使用毫秒为单位的时间间隔和回调函数,以便在指定的时间间隔后调用回调函数。 在`update_clock()`函数中,我们使用Python内置的`time`模块来获取当前时间,并将其格式化为小时、分钟和秒的字符串。然后,我们将这个字符串设置为标签的文本,并使用`after()`方法来定期更新时钟。 最后,我们创建了一个`Tk`对象,并将其传递给`Clock`类的构造函数,然后启动了主事件循环。 这个程序只是一个最基本的电子时钟,但你可以根据需要对其进行修改和扩展,以满足你的需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值