Programming/Python
1시간 집중/5분 휴식 집중 타이머 - Keep Your Mind (KYM)
S3yfri3d
2024. 4. 14. 06:18
우리의 뇌는 40분동안 최고의 집중도를 가지며 그 이후엔 효율성이 나빠진다고 한다.
고로 휴식이 필요하며 5분정도의 휴식으로도 충분하다고한다.
(단, 이때 휴대폰이나 뇌를쓰는 것이 아닌 산책이나 눈을감고 명상을 한다던지의 5분 휴식이 필요하다고 한다.)
그래도 40분당 5분휴식의 시간은 효율적이지 않으므로,
1시간뒤 마감시간이라는 자체적인 제한시간을 두고싶었고. 뇌의 효율성을 최대한 이끌어내고싶었다.
구글링해서 따로 찾아서 타이머를 사용하는것보다
파이썬으로 간단하게 만들어서 내 입맛대로 사용하고싶었고.
한번 만들어 보기로했다.
사용한것들 : Python, Tkinter, Pyinstaller
Tkinter를 사용하여 GUI 환경을 만들기로했고,Pyintaller를 사용해서 exe파일을 만들기로했다.
1. 시간이 흐르는 것을 눈으로 보고싶었고
2. 시간이 끝나면 알람을 받고싶었다.
3. 시작버튼을 누르면 집중의 시간은 1시간으로 고정이고싶었고 그이후는 바로 5분의 휴식을 가지고싶었다.
최종 결과물의 사진이다.
import tkinter as tk
from tkinter import messagebox
def update_timer():
global remaining_time
if remaining_time > 0:
mins, secs = divmod(remaining_time, 60)
timeformat = "{:02d}:{:02d}".format(mins, secs)
time_label.config(text=timeformat)
remaining_time -= 1
root.after(1000, update_timer)
else:
if current_phase == "study":
start_break()
else:
messagebox.showinfo("Break Timer", "Break over, back to study!")
def start_timer():
global remaining_time, current_phase
current_phase = "study"
remaining_time = 3600 # 1 hour in seconds
update_timer()
def start_break():
global remaining_time, current_phase
current_phase = "break"
remaining_time = 300 # 5 minutes in seconds
messagebox.showinfo("Break Timer", "Take a 5 minute break!")
update_timer()
# GUI setup
root = tk.Tk()
root.title("KYM")
title_label = tk.Label(root, text="Keep Your Mind", font=("Helvetica", 24))
title_label.pack(pady=(10, 0))
time_label = tk.Label(root, font=("Helvetica", 48), text="00:00")
time_label.pack(pady=20)
start_button = tk.Button(root, text="Keep Your Mind", command=start_timer)
start_button.pack(pady=20)
remaining_time = 0
current_phase = "study"
root.mainloop()
이후
pyinstaller --onefile --windowed KYM.py
위의 명령어를 이용하여 코드를 실행파일로 만들었다.