카테고리 없음

알람시계 3 UI

2024 자탐 2025. 5. 30. 19:55

알람시계 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()

실행 결과

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