Tkinter 버튼 상태를 변경하는 방법

Tkinter Button에는 두 가지 상태가 있습니다.

  • NORMAL-사용자가 버튼을 클릭 할 수 있음
  • 비활성화 됨-버튼을 클릭 할 수 없습니다
try:
    import Tkinter as tk
except:
    import tkinter as tk
    

app = tk.Tk()
app.geometry("300x100")
button1 = tk.Button(app, text="Button 1",
                    state=tk.DISABLED)
button2 = tk.Button(app, text="EN/DISABLE Button 1")
button1.pack(side=tk.LEFT)
button2.pack(side=tk.RIGHT)
app.mainloop()

왼쪽 버튼은 비활성화되어 있으며 (회색으로 표시) 오른쪽 버튼은 정상입니다.

Tkinter 버튼 상태-비활성화 및 정상

사전과 같은 방법이나 구성과 같은 방법으로 상태를 수정할 수 있습니다.

try:
    import Tkinter as tk
except:
    import tkinter as tk
    
def switchButtonState():
    if (button1['state'] == tk.NORMAL):
        button1['state'] = tk.DISABLED
    else:
        button1['state'] = tk.NORMAL
        
app = tk.Tk()
app.geometry("300x100")
button1 = tk.Button(app, text="Python Button 1",
                    state=tk.DISABLED)
button2 = tk.Button(app, text="EN/DISABLE Button 1",
                    command = switchButtonState)
button1.pack(side=tk.LEFT)
button2.pack(side=tk.RIGHT)
app.mainloop()

button2를 클릭하면 switchButtonState함수를 호출하여 button1상태를 DISABLED에서 NORMAL로 또는 그 반대로 전환합니다.

Tkinter 버튼 상태 스위치-비활성화 및 일반 사이

state 는 Tkinter Button 위젯의 옵션입니다. Button 위젯의 모든 옵션은 사전의 Buttonkeys 입니다.

def switchButtonState():
    if (button1['state'] == tk.NORMAL):
        button1['state'] = tk.DISABLED
    else:
        button1['state'] = tk.NORMAL

StateButton 사전에서 state 의 값을 변경하여 업데이트됩니다.

stateButton 객체의 config 메소드를 사용하여 수정할 수도 있습니다. 따라서 switchButtonState()함수는 다음과 같이 구현 될 수 있습니다.

def switchButtonState():
    if (button1['state'] == tk.NORMAL):
        button1.config(state=tk.DISABLED)
    else:
        button1.config(state=tk.NORMAL)

tk.NORMALtk.DISABLED 대신 normaldisabled 문자열도 간단하게 사용할 수 있습니다.

관련 문장 - Tkinter Button

  • 버튼으로 Tkinter 창을 닫는 방법
  • Tkinter 에서 버튼을 클릭하여 새 창을 만드는 방법