python鬧鐘例項

飞雪飘鸿發表於2024-03-27
# coding:utf-8

from tkinter import *

import math,time

global List
global i
root = Tk()
List = []
root.title("a simple clock")
#設定視窗是否可以變化長/寬
root.resizable(1, 1)
def points():
    for i in range(1,13):
        x = 200 + 130*math.sin(2*math.pi*i/12)

        y = 200 - 130*math.cos(2*math.pi*i/12)

        canvas.create_text(x,y,text=i)
def createline(radius,line_width,rad):
    x = 200 + radius * math.sin(rad)

    y = 200 - radius * math.cos(rad)

    i = canvas.create_line(200, 200, x, y, width=line_width)

    List.append(i)
canvas = Canvas(root, width=400, height=500, bd=0, highlightthickness=0)
canvas.pack()
#生成外圓
canvas.create_oval(50, 50, 350, 350)
#生成數字
points()

while 1:

    tm=time.localtime()

    #cur_time=time.asctime(tm)
    cur_time2 = time.strftime('%Y-%m-%d %X', time.localtime())

    t_hour=0

    if tm.tm_hour<=12:

        t_hour=tm.tm_hour

    else:

        t_hour=tm.tm_hour-12

    rad1=2*math.pi*(t_hour+tm.tm_min/60)/12

    rad2=2*math.pi*(tm.tm_min+tm.tm_sec/60)/60

    rad3=2*math.pi*tm.tm_sec/60

    createline(50,6,rad1)

    createline(90,3,rad2)

    createline(120,1,rad3)

    time_text=canvas.create_text(200,450,text=cur_time2)

    root.update()

    time.sleep(1)

    for item in List:
        canvas.delete(item)
    canvas.delete(time_text)

    #root.update()

mainloop()

  

相關文章