From ca0d6618ed1e432746471c796cd2d41e0878a731 Mon Sep 17 00:00:00 2001 From: ANKIT Date: Sat, 9 Sep 2023 08:53:16 +0530 Subject: [PATCH] Create main.py --- day28 /main.py | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 day28 /main.py diff --git a/day28 /main.py b/day28 /main.py new file mode 100644 index 0000000..d4a2cf6 --- /dev/null +++ b/day28 /main.py @@ -0,0 +1,84 @@ +from tkinter import * +import math + +PINK = "#e2979c" +RED = "#e7305b" +GREEN = "#9bdeac" +YELLOW = "#f7f5dd" +FONT_NAME = "Courier" +WORK_MIN = 25 +SHORT_BREAK_MIN = 5 +LONG_BREAK_MIN = 20 +reps = 0 +timer = None + + +def reset_timer(): + window.after_cancel(timer) + canvas.itemconfig(timer_text, text="00:00") + title_label.config(text="Timer", font=(FONT_NAME, 50, "bold"), fg=GREEN, bg=YELLOW) + check_label.config(text="") + global reps + reps = 0 + + +def start_timer(): + global reps + reps += 1 + + work_sec = WORK_MIN * 60 + short_break_sec = SHORT_BREAK_MIN * 60 + long_break_sec = LONG_BREAK_MIN * 60 + + if reps % 8 == 0: + title_label.config(text="Break", fg=RED) + count_down(long_break_sec) + elif reps % 2 == 0: + title_label.config(text="Break", fg=PINK) + count_down(short_break_sec) + else: + title_label.config(text="Work", fg=GREEN) + count_down(work_sec) + + +def count_down(count): + count_min = math.floor(count / 60) + count_sec = count % 60 + if count_sec < 10: + count_sec = f"0{count_sec}" + canvas.itemconfig(timer_text, text=f"{count_min}:{count_sec}") + if count > 0: + global timer + timer = window.after(1000, count_down, count - 1) + else: + start_timer() + marks = "" + for _ in range(math.floor(reps/2)): + marks += "✔" + check_label.config(text=marks) + + +window = Tk() +window.title("Pomodoro") +window.config(padx=100, pady=50, bg=YELLOW) + +canvas = Canvas(width=200, height=224, bg=YELLOW, highlightthickness=0) +tomato_png = PhotoImage(file="tomato.png") +canvas.create_image(100, 112, image=tomato_png) +timer_text = canvas.create_text(100, 130, text="00:00", fill="white", font=(FONT_NAME, 35, "bold")) +canvas.grid(column=1, row=1) + +title_label = Label(text="Timer", font=(FONT_NAME, 50, "bold"), fg=GREEN, bg=YELLOW) +title_label.grid(column=1, row=0) + +check_label = Label(font=(FONT_NAME, 20, "bold"), fg=GREEN, bg=YELLOW) +check_label.grid(column=1, row=3) + +start_button = Button(text="Start", command=start_timer) +start_button.grid(column=0, row=2) + +reset_button = Button(text="Reset", command=reset_timer) +reset_button.grid(column=2, row=2) + + +window.mainloop()