본문 바로가기

[Tkinter] 49강 사용자 확인 다이얼로그 처리하기

@도마22026. 2. 14. 18:00
728x90


이 강의는 Tkinter GUI 강의 49강입니다

48강에서는
messagebox를 사용해
정보, 경고, 오류 메시지를 표시하는 방법을 배웠습니다.

이번 강의에서는
메시지를 보여주는 것에서 한 단계 더 나아가
사용자의 선택을 받아 처리하는 방법을 다룹니다.

이번 강의의 목표는 분명합니다.
확인 다이얼로그의 반환값을 이해하고
사용자 선택에 따라 흐름을 제어하는 패턴을 익히는 것입니다.


확인 다이얼로그는 언제 필요한가

다음과 같은 상황에서는
반드시 사용자 확인이 필요합니다.

  • 삭제, 종료 같은 되돌릴 수 없는 작업
  • 저장 여부 선택
  • 재시도 여부 결정

이때 사용하는 것이
확인(Confirm) 다이얼로그입니다.


messagebox 확인 함수 종류 정리

Tkinter에서
자주 사용하는 확인 다이얼로그는 다음과 같습니다.

  • askyesno
  • askokcancel
  • askretrycancel

이 함수들은
True / False 값을 반환합니다.


askyesno 기본 사용법

result = messagebox.askyesno("제목", "정말 실행하시겠습니까?")
  • Yes → True
  • No → False

반환값을
조건문으로 처리하면 됩니다.


askyesno 예제

import tkinter as tk
from tkinter import messagebox

window = tk.Tk()
window.geometry("300x200")

def delete_item():
    result = messagebox.askyesno("삭제 확인", "정말 삭제하시겠습니까?")
    if result:
        messagebox.showinfo("결과", "삭제되었습니다.")
    else:
        messagebox.showinfo("결과", "취소되었습니다.")

tk.Button(window, text="삭제", command=delete_item).pack(pady=60)

window.mainloop()

사용자의 선택에 따라
다른 동작을 수행합니다.


askokcancel 사용하기

askokcancel은
OK / Cancel 버튼을 제공합니다.

result = messagebox.askokcancel("종료", "프로그램을 종료할까요?")
  • OK → True
  • Cancel → False

종료, 저장 확인 등에
자주 사용됩니다.


askokcancel 예제

import tkinter as tk
from tkinter import messagebox

window = tk.Tk()
window.geometry("300x200")

def exit_app():
    if messagebox.askokcancel("종료", "프로그램을 종료할까요?"):
        window.quit()

tk.Button(window, text="종료", command=exit_app).pack(pady=60)

window.mainloop()

사용자 동의가 있을 때만
프로그램을 종료합니다.


askretrycancel 사용하기

오류 상황에서
재시도를 묻고 싶을 때
사용합니다.

result = messagebox.askretrycancel("오류", "작업에 실패했습니다. 다시 시도할까요?")
  • Retry → True
  • Cancel → False

askretrycancel 예제

import tkinter as tk
from tkinter import messagebox

window = tk.Tk()
window.geometry("300x200")

def run_task():
    if messagebox.askretrycancel("오류", "작업 실패. 다시 시도할까요?"):
        messagebox.showinfo("재시도", "다시 시도합니다.")
    else:
        messagebox.showinfo("중단", "작업을 중단합니다.")

tk.Button(window, text="작업 실행", command=run_task).pack(pady=60)

window.mainloop()

오류 처리 흐름이
자연스럽게 이어집니다.


확인 다이얼로그의 공통 특징

확인 다이얼로그는
다음 특징을 가집니다.

  • 모달 다이얼로그
  • 사용자 선택을 기다림
  • True / False 반환

이 특성을 이해하면
흐름 제어가 쉬워집니다.


확인 다이얼로그 사용 시 주의점

확인 다이얼로그는
남용하면 안 됩니다.

  • 너무 자주 뜨면 피로감
  • 사소한 동작에는 부적합

중요한 결정 지점에만
사용하는 것이 좋습니다.


실무에서 자주 쓰는 패턴

가장 많이 쓰는 패턴은
다음과 같습니다.

  • 삭제 전 → askyesno
  • 종료 전 → askokcancel
  • 실패 후 → askretrycancel

이 세 가지만 익혀도
충분히 실무에 대응할 수 있습니다.


이번 강의 핵심 정리

이번 강의에서 꼭 기억해야 할 내용입니다.

  • 확인 다이얼로그는 선택을 받는다
  • True / False 반환값을 사용한다
  • 상황에 맞는 함수 선택이 중요하다
  • 중요한 결정 지점에만 사용한다

다음 강의 예고

다음 강의에서는
파일 열기 다이얼로그 사용하기를 다룹니다.

이제
사용자 입력을 넘어
파일 시스템과 연결됩니다.


728x90
도마2
@도마2 :: 도마의 코드노트

초보자를 위한 코딩 강의를 정리합니다. 파이썬부터 C#, Unity 게임 제작까지 차근차근 기록합니다. — 도마

목차