Tkinter는 이벤트를 실행하기 위한 버튼을 만들 때 Button 위젯을 제공합니다. 애플리케이션에 이미 비활성화 상태로 생성된 버튼이 있다고 가정해 봅시다. 이렇게 비활성화된 버튼의 상태를 다시 정상으로 되돌리려면 state 속성을 사용하면 됩니다.
state 속성은 애플리케이션에서 버튼을 활성화하거나 비활성화하는 역할을 하며, 두 가지 값을 사용합니다. 바로 state=DISABLED(비활성화)와 state=NORMAL(정상·활성화)입니다.
예제 코드
# 필요한 라이브러리 임포트
from tkinter import *
# tkinter 프레임 인스턴스 생성
win = Tk()
# 프레임 크기 설정
win.geometry("650x450")
# 버튼 객체를 위한 함수 정의
def quit_win():
win.destroy()
# 창을 종료하는 버튼 생성
Button(win, text="Quit", command=quit_win, font=('Helvetica bold', 20),
state=NORMAL).pack(pady=5)
win.mainloop()실행 결과 1
버튼이 비활성화(state=DISABLED) 상태일 때의 화면입니다. 버튼이 회색으로 표시되며 클릭해도 아무 반응이 없습니다.

실행 결과 2
버튼이 state=NORMAL 상태일 때의 화면입니다. 버튼이 정상적으로 활성화되어 클릭 시 지정된 명령(여기서는 창 종료)이 실행됩니다.

실행 중 버튼 상태를 동적으로 변경하는 방법
버튼을 변수에 저장한 뒤 config() 메서드를 사용하면 프로그램 실행 중에도 언제든지 상태를 전환할 수 있습니다.
btn = Button(win, text="Quit", state=DISABLED) btn.pack(pady=5) # 특정 조건에서 버튼 활성화 btn.config(state=NORMAL) # 또는 btn["state"] = NORMAL
이처럼 DISABLED와 NORMAL 값을 적절히 조합하면 입력값 검증 후 버튼을 활성화하거나, 작업 진행 중에는 버튼을 잠그는 등 다양한 UI 흐름을 손쉽게 구현할 수 있습니다.