Tkinter의 텍스트(Text) 위젯은 여러 줄의 텍스트를 삽입하거나 정보를 표시하고, 위젯에 작성된 내용을 가져와 출력할 때 활용할 수 있습니다. 텍스트 위젯에 사용자가 입력한 내용을 읽어오려면 get() 메서드를 사용해야 합니다. 아래 예제를 통해 실제 동작 방식을 살펴보겠습니다.
예제 코드
# 필요한 라이브러리 임포트
from tkinter import *
from tkinter import ttk
# tkinter 프레임 인스턴스 생성
win=Tk()
# 창 크기 설정
win.geometry("700x350")
def get_input():
label.config(text=""+text.get(1.0, "end-1c"))
# 텍스트 위젯 추가
text=Text(win, width=80, height=15)
text.insert(END, "")
text.pack()
# 입력된 텍스트를 가져오는 버튼 생성
b=ttk.Button(win, text="Print", command=get_input)
b.pack()
# 레이블(Label) 위젯 생성
label=Label(win, text="", font=('Calibri 15'))
label.pack()
win.mainloop()실행 결과
위 코드를 실행하면 텍스트 위젯과 출력용 버튼이 포함된 창이 나타납니다. 텍스트 위젯에 원하는 내용을 입력한 뒤 "Print" 버튼을 클릭하면, 입력한 내용이 하단의 레이블(Label) 위젯에 그대로 표시됩니다.
여기서 핵심은 get(1.0, "end-1c") 구문입니다. 첫 번째 인자인 1.0은 첫 번째 줄의 첫 번째 문자부터 읽기 시작한다는 의미이고, 두 번째 인자인 "end-1c"는 텍스트 끝에서 마지막 개행 문자(newline) 하나를 제외한 지점까지 읽으라는 뜻입니다. 이렇게 하면 get() 메서드가 기본적으로 추가하는 불필요한 줄바꿈 없이 순수하게 입력된 텍스트만 깔끔하게 가져올 수 있습니다.