IT/파이썬

[파이썬 강의] 파이썬으로 간단한 UI 알람 프로그램 만들기

porodaram 2025. 1. 19. 23:10
반응형

Python으로 간단한 UI 알람 프로그램 만들기

Python은 다양한 라이브러리를 통해 UI 애플리케이션을 손쉽게 개발할 수 있습니다. 이번 글에서는 Python의 tkinter 라이브러리를 사용하여 간단한 UI 알람 프로그램을 만드는 방법을 단계별로 설명하겠습니다. 이 프로그램은 지정한 시간에 사용자에게 알람을 표시하는 기능을 제공합니다.


1. 프로젝트 개요

이 알람 프로그램의 주요 기능은 다음과 같습니다:

  1. 사용자로부터 알람 시간을 입력받기.
  2. 현재 시간을 실시간으로 표시하기.
  3. 알람 시간이 되면 팝업 창으로 알림 메시지 표시하기.

2. 주요 라이브러리 소개

Tkinter

  • Python 표준 라이브러리로 간단한 GUI 프로그램을 제작할 수 있습니다.
  • 버튼, 입력 창, 레이블 등 다양한 UI 요소를 제공합니다.

Time 및 Datetime 모듈

  • 현재 시간을 확인하거나 특정 시간 계산을 위해 사용합니다.

3. 개발 단계

3.1 프로젝트 구조 설계

우선, 프로그램의 구조를 설계합니다. 이 프로젝트는 다음과 같은 구성 요소로 나뉩니다:

  1. UI 디자인: tkinter를 이용하여 알람 시간을 입력받는 인터페이스를 제작합니다.
  2. 시간 확인 로직: 현재 시간을 주기적으로 확인하여 알람 시간과 비교합니다.
  3. 알림 표시: 알람 시간이 되면 팝업 창으로 알림을 표시합니다.

3.2 세부 구현 단계

3.2.1 필요한 모듈 가져오기

먼저 필요한 모듈들을 임포트합니다:

import tkinter as tk
from tkinter import messagebox
import time
from datetime import datetime

3.2.2 기본 UI 설정

Tkinter를 사용해 기본 창과 UI 요소를 생성합니다:

# 메인 창 생성
root = tk.Tk()
root.title("알람 프로그램")
root.geometry("400x300")

3.2.3 UI 구성 요소 추가

사용자가 알람 시간을 설정하고 확인할 수 있도록 UI를 구성합니다. 여기에는 입력 창, 버튼, 현재 시간 표시 레이블이 포함됩니다:

# 현재 시간 표시 레이블
current_time_label = tk.Label(root, text="현재 시간: ", font=("Helvetica", 14))
current_time_label.pack(pady=20)

# 알람 시간 입력 안내문
alarm_label = tk.Label(root, text="알람 시간 입력 (HH:MM):", font=("Helvetica", 12))
alarm_label.pack(pady=10)

# 알람 시간 입력 창
alarm_entry = tk.Entry(root, font=("Helvetica", 12), width=10)
alarm_entry.pack(pady=5)

# 알람 설정 버튼
def set_alarm():
    global alarm_time
    alarm_time = alarm_entry.get()
    messagebox.showinfo("알람 설정", f"알람이 {alarm_time}으로 설정되었습니다.")

set_alarm_button = tk.Button(root, text="알람 설정", command=set_alarm, font=("Helvetica", 12))
set_alarm_button.pack(pady=10)

3.2.4 현재 시간 업데이트

time 모듈을 사용하여 현재 시간을 매초 업데이트합니다:

def update_time():
    now = datetime.now().strftime("%H:%M:%S")
    current_time_label.config(text=f"현재 시간: {now}")
    root.after(1000, update_time)  # 1초마다 갱신

update_time()

3.2.5 알람 확인 및 표시

설정된 알람 시간과 현재 시간을 비교하여 알람을 트리거합니다:

def check_alarm():
    now = datetime.now().strftime("%H:%M")
    if now == alarm_time:
        messagebox.showinfo("알람", "설정된 시간입니다! 일어나세요!")
    root.after(1000, check_alarm)  # 1초마다 확인

check_alarm()

3.2.6 메인 루프 실행

모든 기능을 통합한 후 메인 루프를 실행합니다:

root.mainloop()

4. 전체 코드

아래는 위의 내용을 통합한 전체 코드입니다:

import tkinter as tk
from tkinter import messagebox
import time
from datetime import datetime

# 메인 창 생성
root = tk.Tk()
root.title("알람 프로그램")
root.geometry("400x300")

# 현재 시간 표시 레이블
current_time_label = tk.Label(root, text="현재 시간: ", font=("Helvetica", 14))
current_time_label.pack(pady=20)

# 알람 시간 입력 안내문
alarm_label = tk.Label(root, text="알람 시간 입력 (HH:MM):", font=("Helvetica", 12))
alarm_label.pack(pady=10)

# 알람 시간 입력 창
alarm_entry = tk.Entry(root, font=("Helvetica", 12), width=10)
alarm_entry.pack(pady=5)

# 알람 설정 버튼
def set_alarm():
    global alarm_time
    alarm_time = alarm_entry.get()
    messagebox.showinfo("알람 설정", f"알람이 {alarm_time}으로 설정되었습니다.")

set_alarm_button = tk.Button(root, text="알람 설정", command=set_alarm, font=("Helvetica", 12))
set_alarm_button.pack(pady=10)

# 현재 시간 업데이트 함수
def update_time():
    now = datetime.now().strftime("%H:%M:%S")
    current_time_label.config(text=f"현재 시간: {now}")
    root.after(1000, update_time)

update_time()

# 알람 확인 함수
def check_alarm():
    now = datetime.now().strftime("%H:%M")
    if now == alarm_time:
        messagebox.showinfo("알람", "설정된 시간입니다! 일어나세요!")
    root.after(1000, check_alarm)

check_alarm()

# 메인 루프 실행
root.mainloop()

5. 추가 기능 아이디어

위 프로그램은 기본적인 알람 기능만을 제공합니다. 다음과 같은 기능을 추가해 확장할 수 있습니다:

  1. 알람 반복: 알람이 울린 후 다시 울리도록 설정.
  2. 음악 재생: 알람 소리로 원하는 음악 파일 재생.
  3. UI 개선: 더 직관적이고 보기 좋은 디자인 추가.
  4. 알람 목록: 여러 개의 알람을 설정하고 관리할 수 있도록 확장.

6. 결론

이 글에서는 tkinter를 사용하여 간단한 알람 프로그램을 제작하는 방법을 설명했습니다. Python의 다양한 모듈을 활용하면 이와 같이 간단하면서도 유용한 애플리케이션을 쉽게 만들 수 있습니다. 앞으로 다양한 기능을 추가하여 자신만의 완벽한 알람 프로그램을 만들어 보세요!

반응형