Tkinter의 messagebox 라이브러리에는 다양한 메서드와 내장 함수가 포함되어 있습니다. 하지만 기본 메시지 상자만으로는 사용자 입력을 받을 수 없습니다. 만약 대화상자를 띄우면서 동시에 Entry 위젯을 통해 사용자로부터 값을 입력받고 싶다면, simpledialog 모듈의 askstring 함수를 활용하는 것이 가장 간단한 방법입니다.
askstring 함수는 문자열 입력용 다이얼로그 창을 생성하며, 두 개의 인수를 받습니다. 첫 번째 인수는 창의 제목이고, 두 번째 인수는 Entry 입력란 앞에 표시될 안내 문구입니다. 아래 예제를 통해 실제 동작 방식을 살펴보겠습니다.
예제 코드
# 필요한 라이브러리 임포트
from tkinter import *
from tkinter.simpledialog import askstring
from tkinter.messagebox import showinfo
# Tkinter 프레임 및 윈도우 생성
win = Tk()
win.geometry("700x300")
# 문자열 입력 다이얼로그 호출
name = askstring('Name', 'What is your name?')
# 입력받은 이름으로 정보 메시지 상자 표시
showinfo('Hello!', 'Hi, {}'.format(name))
win.mainloop()
실행 결과
위 코드를 실행하면 사용자에게 이름을 입력하라는 팝업 입력창이 화면에 나타납니다.

이름을 입력한 후 OK 버튼을 클릭하면, 입력된 이름을 포함한 다음과 같은 환영 메시지가 표시됩니다.

추가 팁
사용자가 Cancel 버튼을 클릭하거나 창을 닫으면 askstring은 None을 반환합니다. 따라서 실제 애플리케이션에서는 반환값이 None인지 먼저 확인한 후 처리하는 것이 안전합니다. 또한 비슷한 방식으로 정수 입력에는 askinteger, 실수 입력에는 askfloat 함수를 사용할 수 있습니다.