Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Tkinter로 자동 업데이트되는 GUI 만들기 – 실시간 시계 애플리케이션 구현 방법

Tkinter를 사용하면 시간 변화에 따라 스스로 갱신되는 GUI를 손쉽게 만들 수 있습니다. 이 글에서는 현재 시간이 바뀔 때마다 자동으로 새로 고침되는 GUI 기반 시계 애플리케이션을 만들어 보겠습니다. 화면에는 시계와 함께 요일 및 시간대(TimeZone) 정보도 함께 표시됩니다.

구현 순서는 다음과 같습니다. 먼저 tkinter 라이브러리를 임포트한 뒤, strftime 함수를 이용해 현재 시간과 요일 값을 가져오는 함수를 작성합니다. 그리고 Tkinter의 after() 메서드를 활용해 이 함수를 1초마다 반복 호출함으로써 자동 업데이트 효과를 만듭니다.

전체 예제 코드

# tkinter 라이브러리 임포트
from tkinter import *
import time

# 윈도우(캔버스) 인스턴스 생성
win = Tk()

# 윈도우 제목 설정
win.title("tutorialspoint.com")

# 윈도우 크기 지정
win.geometry("600x400")

# 시계를 표시하는 함수 정의
def clock():
    hh = time.strftime("%I")        # 시 (12시간 형식)
    mm = time.strftime("%M")        # 분
    ss = time.strftime("%S")        # 초
    day = time.strftime("%A")       # 요일
    ap = time.strftime("%p")        # 오전/오후
    time_zone = time.strftime("%Z") # 시간대

    my_lab.config(text=hh + ":" + mm + ":" + ss)
    my_lab.after(1000, clock)       # 1초 후 자신을 다시 호출

    my_lab1.config(text=time_zone + " " + day)

# 시간 업데이트용 함수
def updateTime():
    my_lab.config(text="New Text")

# 시계 텍스트를 표시할 레이블 생성
my_lab = Label(win, text="", font=("sans-serif", 56), fg="red")
my_lab.pack(pady=20)
my_lab1 = Label(win, text="", font=("Helvetica", 20), fg="blue")
my_lab1.pack(pady=10)

# clock 함수 호출로 시계 시작
clock()

# 윈도우 실행 유지
win.mainloop()

핵심 포인트 정리

  • time.strftime(): 현재 시간, 분, 초, 요일, 오전/오후, 시간대 등을 원하는 형식의 문자열로 반환합니다.
  • Label.config(): 이미 생성된 위젯의 텍스트 속성을 동적으로 변경합니다. 별도의 위젯 재생성 없이 화면 내용만 갱신할 수 있습니다.
  • after(1000, clock): 자동 업데이트의 핵심입니다. 1000밀리초(1초) 후에 clock 함수를 다시 호출하도록 예약하여, 시계가 매초 스스로 갱신되도록 만듭니다.
  • mainloop(): 이벤트 루프를 실행해 윈도우가 종료될 때까지 프로그램이 계속 동작하도록 유지합니다.

실행 결과

위 코드를 실행하면 빨간색 큰 글씨로 현재 시각이 표시되고, 그 아래 파란색 글씨로 시간대와 요일이 함께 나타나는 자동 업데이트 GUI 애플리케이션이 생성됩니다. 매초 초 단위 숫자가 저절로 바뀌는 것을 확인할 수 있습니다.

Tkinter로 자동 업데이트되는 GUI 만들기 – 실시간 시계 애플리케이션 구현 방법