사용자 입력을 받기 위해 여러 개의 단일 입력 필드로 구성된 폼은 이미 익숙할 것입니다. Tkinter에서도 Entry 위젯을 사용해 하나의 입력 필드를 손쉽게 만들 수 있습니다. Entry 필드에 사용자가 입력하는 각 문자는 인덱스로 관리되며, 이 인덱스를 활용하면 현재 커서의 위치를 알아낼 수 있습니다.
커서의 현재 위치를 확인하려면 index() 메서드에 INSERT 인수를 전달하면 됩니다. 이 메서드는 커서가 위치한 문자의 인덱스 값을 반환합니다.
예제 코드
# 필요한 라이브러리 임포트
from tkinter import *
from tkinter import ttk
# tkinter 윈도우 인스턴스 생성
win = Tk()
win.geometry("700x350")
win.title("Get the Cursor Position")
# 스타일 클래스 인스턴스 생성
style = ttk.Style(win)
# 커서의 현재 위치를 가져오는 함수
def get_current_info():
print("The cursor is at: ", entry.index(INSERT))
# Entry 위젯 생성
entry = ttk.Entry(win, width=18)
entry.pack(pady=30)
# 버튼 위젯 생성
button = ttk.Button(win, text="Get Info", command=get_current_info)
button.pack(pady=30)
win.mainloop()실행 결과
위 코드를 실행하면 Entry 위젯과 버튼이 배치된 창이 나타납니다. 이 버튼을 클릭하면 커서의 현재 인덱스를 확인할 수 있습니다.
Entry 위젯에 텍스트를 입력한 뒤 "Get Info" 버튼을 클릭하면, 콘솔에 커서의 현재 위치가 출력됩니다.
The cursor is at: 15
핵심 정리
entry.index(INSERT)는 Entry 위젯에서 커서(텍스트 삽입 지점)가 위치한 인덱스를 반환합니다. 참고로 INSERT 외에도 END(문자열 끝), SEL_FIRST(선택 영역 시작), SEL_LAST(선택 영역 끝) 등의 특수 인덱스를 활용하면 다양한 위치 정보를 얻을 수 있습니다. 이 기능은 텍스트 편집기나 입력 보조 기능을 구현할 때 유용하게 활용됩니다.