포모도로 타이머

Malman Bunzirr·2022년 6월 25일
0

목표

나는 시간 관리를 못해.
이것저것 알아보니 '포모도로'라는 시간 관리 방법론이 꽤 마음에 드는데...
전용 타이머를 만들어보자!

코드

import tkinter

WORK_MIN = 25
LONG_BREAK_MIN = 20
SHORT_BREAK_MIN = 5
PINK = "#e2979c"
RED = "#e7305b"
GREEN = "#9bdeac"
reps = 0
timer = None

def start_timer():
    global reps
    reps += 1
    if reps%2:
        title.config(text="WORK", fg=GREEN)
        count_down(WORK_MIN*60)
    elif not reps%8:
        title.config(text="BREAK", fg=RED)
        count_down(LONG_BREAK_MIN*60)
    else:
        title.config(text="BREAK", fg=PINK)
        count_down(SHORT_BREAK_MIN*60)
def reset_timer():
    global reps
    window.after_cancel(timer)
    reps = 0
    title.config(text="Timer", fg=GREEN)
    timer_text.config(text="00:00")
    check.config(text="")
def count_down(n):
    global timer
    timer_text.config(text=f"{n//60:0>2}:{n%60:0>2}")
    if n>0:
        timer = window.after(1000, count_down, n-1)
    else:
        if not reps%2:
            check.config(text="".join(["✔" for _ in range(reps//2)]))
        start_timer()

window = tkinter.Tk()
window.title("Pomodoro Timer")
window.config(padx=50, pady=50)
title = tkinter.Label(text="Timer", font=("Arial", 50, "bold"), fg=GREEN)
title.grid(row=0, column=1)
timer_text = tkinter.Label(text="00:00", font=("Arial", 50, "bold"))
timer_text.grid(row=1, column=1)
start_button = tkinter.Button(text="Start", command=start_timer)
start_button.grid(row=2, column=0)
reset_button = tkinter.Button(text="Reset", command=reset_timer)
reset_button.grid(row=2, column=2)
check = tkinter.Label(text="", fg=GREEN)
check.grid(row=3, column=1)

window.mainloop()

실행 결과

0개의 댓글