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()
二 运行结果

 

猜你喜欢

转载自cakin24.iteye.com/blog/2384558