Tkinter는 버튼, 텍스트, 엔트리(Entry), 대화상자 등 다양한 위젯을 제공하는 파이썬의 대표적인 GUI 라이브러리로, 이를 활용하면 데스크톱 애플리케이션을 손쉽게 개발할 수 있습니다. 하지만 아쉽게도 tkinter에는 Entry 위젯에 자리 표시자(placeholder) 기능이 기본적으로 포함되어 있지 않습니다.
자리 표시자란 사용자가 값을 입력하기 전에 입력 필드에 미리 표시되는 안내용 더미 텍스트입니다. 어떤 내용을 입력해야 하는지 시각적으로 알려주는 역할을 하므로, 사용자 경험 측면에서 매우 유용합니다.
이 글에서는 insert(인덱스, 텍스트) 함수를 활용해 Entry 위젯에 자리 표시자를 추가하는 방법을 알아보겠습니다. 이 함수는 첫 번째 인수로 삽입 시작 위치(기본값 0)를, 두 번째 인수로 표시할 텍스트를 전달받습니다.
예제 코드
# tkinter 라이브러리 임포트
from tkinter import *
# 프레임 인스턴스 생성
win = Tk()
# 창 크기 설정
win.geometry("700x400")
# 텍스트 레이블 생성
Label(win, text="Notepad", font=('Poppins bold', 25)).pack(pady=20)
text = StringVar()
# Entry 위젯 생성
test = Entry(win, textvariable=text)
test.pack(fill='x', expand=True, padx=45, pady=45)
test.focus()
# Entry 위젯에 자리 표시자 추가
test.insert(0, "Enter any Text")
win.mainloop()실행 결과
위 코드를 실행하면 자리 표시자가 포함된 Entry 위젯이 생성된 화면을 확인할 수 있습니다.
사용자가 직접 텍스트를 입력하기 전까지는 "Enter any Text"라는 안내 문구가 입력 필드에 표시되며, 입력을 시작하면 해당 문구는 사라지고 사용자가 입력한 값으로 대체됩니다. 이처럼 insert() 함수를 활용하면 tkinter에서도 별도의 커스텀 클래스를 만들지 않고 간단하게 자리 표시자 효과를 구현할 수 있습니다.
