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

Tkinter Entry 위젯에서 커서 위치 가져오는 방법

사용자 입력을 받기 위해 여러 개의 단일 입력 필드로 구성된 폼은 이미 익숙할 것입니다. 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(선택 영역 끝) 등의 특수 인덱스를 활용하면 다양한 위치 정보를 얻을 수 있습니다. 이 기능은 텍스트 편집기나 입력 보조 기능을 구현할 때 유용하게 활용됩니다.