# Características comunes de Label, Entry, button, radiobutton checkbutton

### Características comunes de Label, Entry, button, radiobutton checkbutton

&#x20;`Label, Entry, button, radiobutton y checkbutton,` comparten varias características y métodos comunes que los hacen interactivos y útiles para construir interfaces de usuario en aplicaciones.

### Características Comunes

1. **Contenedor**:
   * Todos los widgets necesitan un contenedor o padre (`ventana`) donde se colocarán. Esto usualmente es una instancia de `Tk` o un `Frame`.
2. **Opciones de Configuración**:
   * **text**: Casi todos los widgets (excepto `Entry`) pueden mostrar texto. En `Entry`, el texto se introduce mediante el usuario.
   * **font**: Todos permiten cambiar la tipografía, tamaño y estilo del texto.
   * **background (bg) y foreground (fg)**: La mayoría de los widgets permiten modificar el color de fondo y el color del texto.
   * **width y height**: Controlan las dimensiones del widget, aunque su interpretación puede variar (por ejemplo, en `Entry`, `width` se refiere al número de caracteres).
   * **state**: Muchos widgets pueden ser configurados como `normal`, `disabled` o `readonly`, controlando si el usuario puede interactuar con ellos.
3. **Métodos de Geometría**:
   * **pack()**, **grid()**, y **place()**: Son los métodos de gestión de geometría para organizar los widgets dentro de su contenedor. Cada método tiene sus propias características y usos adecuados.
4. **Control de Eventos**:
   * **command**: Widgets como `Button`, `Radiobutton` y `Checkbutton` usan esta opción para definir una función que se llamará cuando el usuario interactúe con el widget (como hacer clic en un botón).

### Métodos Comunes

* **config() / configure()**: Permite configurar las propiedades del widget después de su creación.
* **cget()**: Utilizado para obtener el valor actual de una configuración del widget.

### Ejemplo

```python
from tkinter import *

def enviar():
    print("Nombre:", Entrada.get())
    res="Suscripción al boletín:"
    if var_check.get():
        res=res+" Sí"
    else:
        res=res+" No"
    print(res)

ventana =  Tk()
ventana.title("Formulario Simple")

ventana.geometry("450x450")
ventana.resizable(False, False)

# Label
Etiqueta =  Label(ventana, text="Nombre:", font=("Arial", 12))
Etiqueta.pack()

# Entry
Entrada=  Entry(ventana, font=("Arial", 12), bg="lightgray", width=20)
Entrada.pack()

# Button
Boton =  Button(ventana, text="Enviar", command=enviar)
Boton.pack()

# Checkbutton
var_check =  BooleanVar()
check =  Checkbutton(ventana, text="Suscribirse al boletín", variable=var_check)
check.pack()

ventana.mainloop()
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://material-docente.gitbook.io/informatica-para-ingenieria-2023-2024/interfaz-grafica/interfaz-grafica-de-usuario-igu/caracteristicas-comunes-de-label-entry-button-radiobutton-checkbutton.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
