Tkinter의 Entry(엔트리) 위젯은 사용자로부터 한 줄짜리 텍스트 입력을 받는 기본적인 입력 필드입니다. 애플리케이션의 요구 사항에 따라 위젯의 너비, 배경색, 글꼴 크기 등을 자유롭게 커스터마이징할 수 있습니다.
그렇다면 입력을 받지 않도록 Entry 위젯을 비활성화하려면 어떻게 해야 할까요? 답은 간단합니다. 생성자에서 state='disabled' 속성을 지정하거나, config() 메서드를 사용해 상태를 변경하면 됩니다. 위젯이 비활성화되면 사용자는 해당 필드에 값을 입력하거나 편집할 수 없으며, 화면에는 회색조로 표시됩니다.
예제 코드
실제 동작 과정을 예제를 통해 살펴보겠습니다. 아래 코드에서는 Entry(master, **options) 생성자로 Entry 위젯을 만들고, 버튼을 클릭하면 해당 위젯을 비활성화하도록 구현했습니다. 버튼에 연결된 disable_entry() 함수가 호출되면 Entry 위젯은 회색으로 바뀌며 더 이상 편집할 수 없습니다.
# 필요한 라이브러리 임포트
from tkinter import *
# tkinter 프레임 인스턴스 생성
win = Tk()
# tkinter 윈도우 크기 설정
win.geometry("700x350")
def disable_entry():
entry.config(state= "disabled")
# Entry 위젯 생성
entry=Entry(win, width= 40, font= ('Helvetica 16'))
entry.pack(pady=20)
# 버튼 생성
button=Button(win, text="Disable Entry", font=('Arial', 12), command=disable_entry)
button.pack()
win.mainloop()
실행 결과
위 코드를 실행하면 Entry 위젯과 "Disable Entry" 버튼이 포함된 윈도우가 화면에 나타납니다. 초기 상태에서는 Entry 필드에 자유롭게 텍스트를 입력할 수 있습니다.

이제 "Disable Entry" 버튼을 클릭해 보세요. Entry 위젯이 회색으로 비활성화되어 텍스트 입력 및 편집이 차단된 것을 확인할 수 있습니다.

참고로, 비활성화된 위젯을 다시 활성화하려면 entry.config(state="normal")처럼 상태값을 normal로 변경하면 됩니다. 이러한 state 옵션은 읽기 전용(readonly) 모드 등 다양한 형태로 응용할 수 있으므로, 상황에 맞게 활용해 보시기 바랍니다.