Как изменить состояние кнопки 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()
Левая кнопка отключена (серый цвет отсутствует), а правая - обычная.
Состояния могут быть изменены словарным методом или конфигурационным методом.
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
или наоборот.
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
.