from tkinter import Tk, Canvas #, Label
class CircleTimer(Tk):
c = 359.999999
def End(self):
self.place.itemconfig(self.arc, extent=self.c)
self.c -= 1
#self.k.config(text = self.c)
if self.c > -1:
self.after(5, self.End)
#self.update()
else:
self.place.itemconfig(self.arc, extent=359.99)
def New(self):
if self.t // 60 != 0 :
self.place.itemconfig(self.tx, text = self.t // 60)
else:
self.place.itemconfig(self.tx, text = self.t)
self.place.itemconfig(self.arc, extent=self.c)
self.t -=1
self.c -= self.step
if self.t != -1:
self.after(1000,self.New)
else:
self.c =359
#self.place.itemconfig(self.tx, text = 360)
self.place.itemconfig(self.arc, extent=self.c, outline='red')
self.End()
def __init__(self, t = 5, ttype='second'):
super().__init__()
self.geometry("400x400")
self.t = t
#self.k = Label(text="1")
#self.k.pack()
self.step = self.c/self.t
self.place = Canvas(self, width=400, height=400)
self.arc = self.place.create_arc(100, 100, 300, 300, start=90, extent=0, style='arc',outline='darkgreen', width=20) # малювання синього сектора
self.tx = self.place.create_text(200, 200, # координати центрування тексту
text="_", # текст, що відображатиметься на полотні
justify='center', # вирівнювання тексту по центру
font="Tahoma 45")
self.place.pack()
#for i in range(self.t, 0, -1):
self.New
self.after(1000, self.New)
t = CircleTimer(65)
t.mainloop()
Коментарі
Дописати коментар