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

파이썬 Tkinter에서 대화 상자를 전면에 표시하는 방법

개요

파이썬(Python)의 Tkinter는 다양한 내장 함수와 메서드를 제공하여 완전한 기능을 갖춘 데스크톱 애플리케이션을 손쉽게 개발할 수 있도록 지원합니다.

대화 상자(Dialog Box)는 사용자에게 입력을 요청하거나 정보를 받아오기 위해 일시적으로 생성되는 창입니다. 대화 상자에는 특정 작업 실행에 대한 사용자 동의를 구하거나, 다른 스레드 기반 애플리케이션을 여는 등의 추가 정보가 포함될 수 있습니다.

Tkinter는 messagebox, simpledialog, filedialog와 같은 내장 라이브러리를 통해 대화 상자를 간편하게 구현할 수 있으며, 애플리케이션의 필요에 따라 메시지와 옵션을 자유롭게 커스터마이징할 수도 있습니다.

대화 상자를 화면 맨 앞으로 가져오면 다른 모든 사용자 작업이 차단되며, 사용자는 대화 상자에 대해 먼저 조치를 취해야 합니다. 이러한 동작 방식을 '모달(Modal)'이라고 부르며, 아래 예제를 통해 실제 구현 과정을 살펴보겠습니다.

예제 코드

다음 예제에서는 버튼을 클릭하면 사용자에게 조치를 요청하는 대화 상자가 나타나도록 구현했습니다. 대화 상자가 전면에 표시되는 동안에는 해당 대화 상자를 닫기 전까지 다른 작업을 수행할 수 없습니다.

# 필요한 라이브러리 임포트
from tkinter import *
from tkinter import messagebox

# tkinter 프레임(윈도우) 인스턴스 생성
win = Tk()

# 윈도우 크기 및 제목 설정
win.geometry("700x250")
win.title("대화 상자 예제")

# 대화 상자를 호출하는 함수 정의
def click_me():
    top = messagebox.askokcancel("질문", "정말 취소하시겠습니까?", parent=win)

# 대화 상자를 트리거하는 버튼 생성
button = Button(win, text="클릭하세요", command=click_me)
button.pack()

win.mainloop()

참고 팁: messagebox 호출 시 parent=win 옵션을 지정하면 대화 상자가 항상 부모 윈도우보다 위에 표시됩니다. 또한 윈도우 자체를 항상 최상위로 유지하고 싶다면 win.attributes('-topmost', True)를 활용할 수 있습니다.

실행 결과

코드를 실행하면 먼저 다음과 같은 윈도우가 나타납니다.

파이썬 Tkinter에서 대화 상자를 전면에 표시하는 방법

버튼을 클릭하면 메시지 박스(messagebox)가 화면 맨 앞에 표시되며 사용자에게 조치를 요청합니다. 메시지 박스가 활성화되어 있는 동안에는 배경의 부모 윈도우가 비활성화 상태로 유지되어, 사용자가 반드시 대화 상자에 응답하도록 강제할 수 있습니다.

파이썬 Tkinter에서 대화 상자를 전면에 표시하는 방법