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

Tkinter Entry 위젯에 임시 텍스트(플레이스홀더)를 삽입하는 방법

Tkinter의 Entry 위젯에 임시 텍스트(플레이스홀더)를 삽입하려면 <FocusIn> 이벤트를 Entry 위젯에 바인딩하고, 사용자가 정의한 함수를 호출하여 Entry 위젯 내부의 텍스트를 삭제하면 됩니다. 이렇게 하면 사용자가 입력 필드를 클릭하는 순간 임시 텍스트가 자동으로 사라지고 새로운 값을 입력할 수 있습니다.

구현 단계

  • tkinter 라이브러리를 임포트하고 tkinter 프레임의 인스턴스를 생성합니다.

  • geometry 메서드를 사용하여 프레임의 크기를 설정합니다.

  • <FocusIn> 이벤트를 감지하여 Entry 위젯 안의 임시 텍스트를 삭제하는 사용자 정의 메서드 temp_text()를 작성합니다.

  • 루트 윈도우 안에 Entry 위젯을 생성하고 배경색, 너비, 테두리 두께 등의 속성을 설정합니다.

  • Entry 위젯의 insert() 메서드를 사용하여 시작 위치 "0"에 문자열을 삽입합니다. 이것이 임시 텍스트이며, Entry 위젯이 클릭되면 사라집니다.

  • <FocusIn> 이벤트를 Entry 위젯에 바인딩하고 temp_text() 메서드를 호출합니다.

  • 마지막으로 애플리케이션 창의 mainloop를 실행합니다.

예제 코드

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

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

# 윈도우 크기 설정
win.geometry("700x250")

def temp_text(e):
   textbox.delete(0,"end")

textbox = Entry(win, bg="white", width=50, borderwidth=2)
textbox.insert(0, "This is Temporary Text...")
textbox.pack(pady=20)

textbox.bind("", temp_text)

win.mainloop()

실행 결과

코드를 실행하면 다음과 같은 창이 나타납니다.

Tkinter Entry 위젯에 임시 텍스트(플레이스홀더)를 삽입하는 방법

사용자가 Entry 위젯 내부를 클릭하면 임시 텍스트가 자동으로 사라지며, 빈 입력 필드에서 원하는 값을 바로 입력할 수 있습니다.

Tkinter Entry 위젯에 임시 텍스트(플레이스홀더)를 삽입하는 방법

추가 팁

실제 애플리케이션에서는 사용자가 아무것도 입력하지 않고 포커스를 벗어나는 경우(<FocusOut>) 임시 텍스트를 복원하는 로직을 추가할 수도 있습니다. 또한 임시 텍스트의 색상을 회색으로 변경해 일반 입력값과 시각적으로 구분하면 더욱 직관적인 UI를 만들 수 있습니다.