¿Cómo ocultar un botón completamente?

publicado por: Anonymous

En una aplicación que estoy haciendo necesito que unos botones se oculten completamente(no como el state="disable" que deshabilita el botón pero lo deja visible).

¿Hay algún comando o algo para hacer eso?

solución

Generalmente esto implica remover el widget de la ventana (sin destruirlo). Depende del método (geometry manager) que uses para posicionar el widget en la ventana/padre:

btn.place() --> btn.place_forget()
btn.grid()  --> btn.grid_forget()
btn.pack()  --> btn.pack_forget()

En el caso de grid o pack los demás widgets se reacomodan para ocupar el espacio dejado libre. Para volver a mostrar el widget hay que volver a llamar al pack/place/grid de nuevo.

Si estamos usando grid suele ser preferible usar grid_remove, ya que a la hora de volver a mostrar el widget, la configuración original es recordada por lo que basta con hacer btn.grid(), sin tener que especificar de nuevo fila, columna, etc.

Un ejemplo con place que demuestra como ocultar y volver a mostrar un botón:

import tkinter as tk

ventana = tk.Tk()
ventana.geometry('200x200')


def btn_hide():
    if b1.winfo_ismapped():
        b1.place_forget()
        b2.configure(text="Mostrar Botón 1")
    else:
        b1.place(x=70, y=50)
        b2.configure(text="Ocultar Botón 1")


b1 = tk.Button(ventana, text="Botón 1", fg="black", width=5)
b1.place(x=70, y=50)
b2 = tk.Button(ventana, text="Ocultar Botón 1", command=btn_hide, fg="black", width=10)
b2.place(x=50, y=90)

introducir la descripción de la imagen aquí

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *