Python

[Python] Tkinter 위젯(엔트리, 버튼) 비활성화/활성화 시키기(normal/ disabled)

Let it out 2024. 3. 4. 21:57

엔트리, 버튼 같은 위젯을 비활성화 시키고 싶을 때는 state 속성을 바꿔주면 된다.

 

 

위젯 비활성화

state 속성을 disabled 시키면된다.

entry.config(state="disabled")

 

 

위젯  활성화

state 속성을 normal로 바꿔준다.

entry.config(state="normal")

 


 

엔트리, 버튼 비활성화 전체 코드

엔트리와 버튼을 비활성화 시키는 예제다.

import tkinter as tk

#윈도우 생성
window = tk.Tk()
window.title('Example') #최상단 타이틀 이름
window.geometry('500x500+220+200') #윈도우 창 화면 크기

# 엔트리 추가
entry = tk.Entry(window)
entry.pack(side="left", anchor="nw")
entry.config(state="disabled")

# 버튼 추가
button = tk.Button(window, text="report")
button.pack()
button.config(state="disabled")

#이벤트 루프
window.mainloop()

 

 

실행 결과

위에 코드를 실행 시키면 엔트리에 입력이 안되며, 버튼 클릭도 안되도록 비활성화 된다.

 

 

 


 

위젯 비활성화 응용 예제

버튼을 누를 때 마다 엔트리가 활성화/ 비활성화 되는 코드 예제다.

import tkinter as tk

# 윈도우 생성
window = tk.Tk()
window.title('Example')  # 최상단 타이틀 이름
window.geometry('500x500+220+200')  # 윈도우 창 화면 크기

entryOnOff = 0

def on_button_click():
    global entryOnOff
    if entryOnOff == 0:
        entry.config(state="normal")
        entryOnOff = 1
    else:
        entry.config(state="disabled")
        entryOnOff = 0

# 엔트리 추가
entry = tk.Entry(window)
entry.pack(side="left", anchor="nw")
entry.config(state="disabled")

# 버튼 추가
button = tk.Button(window, text="report", command=on_button_click)
button.pack()

# 이벤트 루프
window.mainloop()

 

반응형