Cómo cambiar el estado del Botón Tkinter

Botón Tkinter tiene dos estados,

  • NORMAL - El botón puede ser pulsado por el usuario.
  • DISABLE - El botón no es clicable
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()

El botón izquierdo está deshabilitado (grisáceo) y el botón derecho es normal.

Estados del botón Tkinter - DESACTIVADO y NORMAL

Los estados pueden ser modificados en el método de diccionario o en el método de configuración.

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()

Haciendo clic en button2, llama a la función switchButtonState para cambiar el estado de button1 de DISABLED a NORMAL, o viceversa.

Cambio de estados de los botones de Tkinter - entre DISABLED y NORMAL

El status es la opción del widget Button de Tkinter. Todas las opciones del widget Button son las claves de Button como un diccionario.

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

El status' se actualiza cambiando el valor destatus’ en el diccionario `Button’.

El status' también puede ser modificado usando el métodoconfig’ del objeto Button'. Por lo tanto, la funciónswitchButtonState()` también puede ser implementada como se muestra a continuación,

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

Incluso las cadenas normal y disabled podrían ser usadas simplemente en lugar de tk.NORMAL y tk.DISABLED.

Artículo relacionado - Tkinter Button

  • Cómo pasar argumentos al comando del botón Tkinter
  • Cómo cerrar una ventana de Tkinter con un botón
  • Cómo crear una nueva ventana haciendo clic en un botón de Tkinter
  • Cómo vincular varios comandos al botón Tkinter
  • comments powered by Disqus