알람시계 1,2를 만들고 시간이 많이 남아 인터넷에서 찾아보고 어려우면서도 공부하기 좋은 알람시계를 찾아 작성해보고자 한다.
1. 프로그램 기본 윈도우 생성
import tkinter
window = tkinter.Tk() # 초기화
window.title("Crawler") # 윈도우 제목 설정
window.geometry("300x475") # 윈도우 사이즈 설정
window.mainloop() # 시작
실행 결과

2. 현재 시간 표기
import tkinter
window = tkinter.Tk()
window.title("Crawler")
window.geometry("300x475")
# 진행 상황 표기 줄
status_label = tkinter.Label(window, text="시작 대기 중") # 라벨이 속할 화면과 텍스트 지정
status_label.pack(padx=20, pady=10) # 라벨을 화면에 넣기
# 현재 시간
clock_label = tkinter.Label(window, text="")
clock_label.pack(pady=10)
실행 결과

시간 표기를 하기 위한 라벨 값에 빈 문자열 ("") 을 넣어둔 탓에, 프로그램이 실행된 초기 화면에는 시간값이 나오고 있지 않다.
이는 지속적으로 업데이트가 진행되어야 할 값이기 때문에, 버튼 클릭으로 동작하는 기능과 함께 하기 위해 잠시 비워둔다.
3. 기능 실행 버튼
import tkinter
window = tkinter.Tk()
window.title("Crawler")
window.geometry("300x475")
def clock_update():
current_time = time.strftime("%H:%M:%S") # 현재 시간 반환
clock_label.config(text = "현재 시간 : {}".format(current_time)) # clock_label 값 업데이트
window.after(1000, clock_update) # 1000ms (1초) 마다 실행
# 진행 상황 표기 줄
status_label = tkinter.Label(window, text="시작 대기 중")
status_label.pack(padx=20, pady=10)
# 현재 시간
clock_label = tkinter.Label(window, text="")
clock_label.pack(pady=10)
# 버튼 Method
button = tkinter.Button(window, command=clock_update, text="시작하기", width=200, height=10)
button.pack(padx=20, pady=25)
window.mainloop()
실행 결과

4. 예약 시간 선택
import tkinter
from tktimepicker import AnalogPicker, constants # 라이브러리 설치 필요
window = tkinter.Tk()
window.title("Crawler")
window.geometry("300x475")
def clock_update():
current_time = time.strftime("%H:%M:%S")
clock_label.config(text = "현재 시간 : {}".format(current_time))
window.after(1000, clock_update)
# 진행 상황 표기 줄
status_label = tkinter.Label(window, text="시작 대기 중")
status_label.pack(padx=20, pady=10)
# 현재 시간
clock_label = tkinter.Label(window, text="")
clock_label.pack(pady=10)
# 예약 시간
time_picker = AnalogPicker(window) # 아날로그 시계 추가
time_picker.pack(padx=20) # 윈도우 반영
# 버튼 Method
button = tkinter.Button(window, command=clock_update, text="시작하기", width=200, height=10)
button.pack(padx=20, pady=25)
window.mainloop()
실행 결과

tktimepicker 에서 제공하는 AnalogPicker를 통해 간단하게 예약할 시간을 선택할 수 있는 시계를 넣어주었다.
5.파일 선택, 파일명 표기
import tkinter, sys
from tktimepicker import AnalogPicker
from tkinter import filedialog, messagebox
file = filedialog.askopenfilenames(initialdir="/", title="파일명 선택") # 파일 선택기 열기
#오류 발생 시 로직 - 파일 선택을 하지 않았을 경우
if not file:
messagebox.showwarning("오류", "파일을 선택하세요")
sys.exit()
window = tkinter.Tk()
window.title("Crawler")
window.geometry("300x500")
def clock_update():
current_time = time.strftime("%H:%M:%S")
clock_label.config(text = "현재 시간 : {}".format(current_time))
window.after(1000, clock_update)
# 파일명 표기
file_name = tkinter.Label(window, text=file) # 선택된 파일면 표기
file_name.pack(padx=20) # 메인 화면에 반영
# 진행 상황 표기 줄
status_label = tkinter.Label(window, text="시작 대기 중")
status_label.pack(padx=20, pady=10)
# 현재 시간
clock_label = tkinter.Label(window, text="")
clock_label.pack(pady=10)
# 예약 시간
time_picker = AnalogPicker(window)
time_picker.pack(padx=20)
# 버튼 Method
button = tkinter.Button(window, command=clock_update, text="시작하기", width=200, height=10)
button.pack(padx=20, pady=25)
window.mainloop()
실행 결과

프로그램을 실행시키면, 파일 선택창이 가장 먼저 나오게 되고, 파일을 선택하면 그 후에 실행 예약창이 띄워지도록 구현하였다.