Tkinter 진행 표시줄: 작업 완료 수와 화면 갱신 연결
진행 표시줄은 완료한 작업 수를 value에 반영하고, 전체 작업 수를 maximum으로 정해 표시합니다.
어떤 상황에서 적용하나요?
아래 예제는 Tkinter 창에서 세 단계의 모의 작업을 표시합니다. after는 콜백 실행을 예약하는 기능이며 실제 긴 작업을 백그라운드에서 실행하는 기능은 아닙니다. 화면이 필요한 예제입니다.
검증 범위: 아래 코드는 문법을 점검한 GUI·브라우저 예제입니다. 이 사이트의 점검 환경에서는 실제 창 실행을 검증하지 않았으며 해당 실행 환경에서 수동 확인이 필요합니다.
최소 예제로 동작 확인하기
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.title("작업 진행 예제")
bar = ttk.Progressbar(root, maximum=3, mode="determinate", length=300)
bar.pack(padx=20, pady=20)
status = tk.StringVar(value="대기")
ttk.Label(root, textvariable=status).pack(pady=10)
def advance(done=0):
bar["value"] = done
status.set(f"처리 {done}/3")
if done < 3:
root.after(500, advance, done + 1)
ttk.Button(root, text="시작", command=advance).pack(pady=10)
root.mainloop()
결과는 어떻게 확인하나요?
시작 버튼을 누르면 처리 0/3에서 3/3으로 바뀝니다. 여기서는 완료를 흉내 낸 것이므로 실제 파일 처리에 연결하려면 완료 이벤트를 받아야 합니다. 시간만 흘렀다고 성공 건수를 증가시키지 마세요.
실제 업무에 적용할 때 확인할 점
여러 번 시작을 누르면 예약 콜백이 겹칠 수 있으므로 실제 앱에서는 실행 중 버튼 비활성화와 취소 상태를 추가하세요. 전체 건수를 모르면 indeterminate 표시를 검토합니다. 실패 건수와 성공 건수도 별도로 표시해야 합니다.
공식 자료와 다음 단계
관련 공식 문서에서 사용하는 버전의 기능과 제한을 확인하세요.
학습 경로: 업무 자동화 가이드 · 입력 오류 처리
작성: 로그 · 2026-10-17 수정: 확인되지 않은 경험담과 성능 보장 표현을 제거하고 예제·적용 조건·공식 근거를 보완했습니다.
댓글
댓글 쓰기