엔트리(Entry) 위젯도 tkinter의 기본 위젯 중의 하나입니다. 응용 프로그램에서 사용자로부터 입력을 받을 때 사용합니다.
즉 사용자가 입력한 텍스트 문자열을 가져 오는 데 사용됩니다. 이 위젯을 이용하면 사용자가 한 줄의 텍스트를 입력할 수 있습니다.
사용자가 위젯의 가능한 디스플레이 공간보다 더 긴 문자열을 입력하면, 문자열이 스크롤 됩니다. 이때 화살표 키를 이용하여 문자열의 보이지 않는 부분으로 이동할 수 있습니다.
여러 줄의 텍스트를 입력할 경우 텍스트 위젯을 사용하는 것이 좋습니다. Entry 위젯은 단일 글꼴로 제한됩니다.
엔트리 위젯의 구문은 다음과 같습니다.
w = Entry(parent, option, ...)
"parent"는 위젯이 배치되는 부모 창을 나타냅니다. 다른 위젯과 마찬가지로 추가 옵션을 사용하여 위젯의 모습에 영향을 미칠 수 있습니다. 옵션은 비어있을 수 있습니다.
다음은 두 개의 입력 필드를 사용하여 이름과 나이를 입력받는 프로그램입니다. 우리는 옵션없이 엔트리 위젯을 사용합니다.
from tkinter import *
window = Tk()
Label(window, text = "이름").grid(row = 0)
Label(window, text = "나이").grid(row = 1)
e1 = Entry(window)
e2 = Entry(window)
# 테이블의 0번째 행, 1번째 열에 배치합니다.
e1.grid(row = 0, column = 1)
e2.grid(row = 1, column = 1)
window.mainloop()
<실행 결과>

위의 프로그램에서는 사용자가 데이터를 입력할 수 있도록 엔트리 위젯을 생성하고 배치하였습니다.
어떻게 엔트리 위젯의 내용을 읽을 수 있을까요? get() 메소드를 사용하면 됩니다.
위의 프로그램에 "show"와 "quit" 2개의 버튼을 추가해봅시다. "show" 버튼을 누르면 show() 함수가 호출되게 연결합니다.
show()에서는 get() 메소드를 사용합니다. show() 사용자가 이 버튼을 클릭할 때마다, 엔트리 위젯의 내용을 인터프리터 셸에 출력합니다.
from tkinter import *
def show():
print("이름 : %s\n나이 : %s" % (e1.get(), e2.get()))
parent = Tk()
Label(parent, text = "이름").grid(row = 0)
Label(parent, text = "나이").grid(row = 1)
e1 = Entry(parent)
e2 = Entry(parent)
e1.grid(row = 0, column = 1)
e2.grid(row = 1, column = 1)
Button(parent, text = '보이기', command = show).grid(row = 3, column = 1, sticky = W, pady = 4)
Button(parent, text = '종료', command = parent.quit).grid(row = 3, column = 0, sticky = W, pady = 4)
mainloop()
<실행 결과>

이름 : 김봉민
나이 : 20
텍스트 위젯(text widget)은 멀티 라인 텍스트 영역에 사용됩니다. 텍스트 위젯은 아주 강력하고 유연성 있으며 다양한 작업에 사용될 수 있습니다.
텍스트 위젯의 주요 용도는 간단한 멀티 라인 영역을 제공하는 것이지만 텍스트 위젯은 간단한 텍스트 편집기 또는 웹 브라우저로도 사용이 가능합니다.
텍스트 위젯은 링크를 표시하거나 이미지, HTML을 표시하는데도 사용될 수 있습니다. 심지어 텍스트를 표시할 때, CSS 스타일을 사용할 수도 있습니다.
Text() 메소드를 이용하면 텍스트 위젯을 만들 수 있습니다. 간단한 예로 30문자 X 2줄의 크기를 가지는 텍스트 위젯을 생성해봅시다.
우리는 insert()를 이용하여 텍스트 위젯에 데이터를 추가할 수 있습니다.
from tkinter import *
window = Tk()
T = Text(window, height = 5, width = 60)
T.pack()
# END는 텍스트를 끝 부분에 추가하라는 뜻입니다.
T.insert(END, "테스트 위젯은 여러 줄의\n텍스트를 표시할 수 있습니다.")
window.mainloop()
<실행 결과>

수식을 텍스트로 입력하면 이것을 계산하고 그 결과를 출력할 수 있는 간단한 계산기를 작성하여 봅시다. 수식의 형태는 파이썬과 동일하여야 합니다.
eval() 함수를 사용하여 사용자가 입력한 수식을 계산할 수 있습니다.
<실행 결과>

