Tkinter의 Text 위젯은 여러 줄의 텍스트를 자유롭게 입력하고 표시할 수 있는 강력한 컴포넌트입니다. 이 위젯을 활용하면 사용자에게 정보를 보여주는 것은 물론, 사용자가 직접 입력한 내용을 가져와 활용할 수도 있습니다.
get() 메서드로 사용자 입력 가져오기
텍스트 위젯에 입력된 값을 읽어 오려면 get() 메서드를 사용해야 합니다. 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(win, text="", font=('Calibri 15'))
label.pack()
win.mainloop()코드 주요 부분 설명
- text.get(1.0, "end-1c"): '1.0'은 첫 번째 줄의 첫 번째 문자부터, 'end-1c'는 마지막 개행 문자를 제외한 끝까지를 의미합니다. 이렇게 지정하면 입력된 텍스트 전체를 불필요한 줄바꿈 없이 정확하게 가져올 수 있습니다.
- command=get_input: 버튼을 클릭하면 get_input() 함수가 호출되어 텍스트 위젯의 내용을 읽어 온 뒤 라벨에 표시합니다.
실행 결과
위 코드를 실행하면 텍스트 위젯이 포함된 창이 화면에 나타납니다. 텍스트 위젯에 원하는 내용을 입력한 뒤 "Print" 버튼을 클릭하면, 입력한 내용이 창 하단의 라벨에 그대로 출력되는 것을 확인할 수 있습니다.
