Как изменить состояние кнопки Tkinter

Tkinter Button имеет два состояния,

  • NORMAL - Кнопка может быть нажата пользователем
  • DISABLE - кнопка не щелкает.
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()

При нажатии кнопки2 вызывается функция switchButtonState для переключения состояния button1 из DISABLED в NORMAL или наоборот.

Переключение состояний кнопки Tkinter - между DISABLED и NORMAL

state - это опция виджета Tkinter Button. Все опции виджета Button являются клавишами Button в виде словаря.

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

Обновление state происходит путем изменения значения state в Button словаря.

Также state может быть изменено с помощью метода config объекта Button. Таким образом, функция switchButtonState() также может быть реализована, как показано ниже,

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

Даже строки normal и disabled могут быть просто использованы вместо tk.NORMAL и tk.DISABLED.

Сопутствующая статья - Tkinter Button

  • Как передать Аргументы команде кнопки Tkinter
  • Как закрыть окно Tkinterа с помощью кнопки
  • Как привязать несколько команд к кнопке Tkinter
  • Как создать новое окно, нажав кнопку в Tkinter
  • Как изменить размер кнопки Tkinter
  • comments powered by Disqus