CodeGym /Curso de Java /Python SELF ES /Botones y campos de entrada

Botones y campos de entrada

Python SELF ES
Nivel 49 , Lección 2
Disponible

1. Creando Botones en Tkinter

¿Para qué necesitamos esto?

Imagina que estás creando una calculadora. ¿Quién la usaría si no puedes ingresar datos y presionar el botón igual? O tal vez estás desarrollando un formulario para ingresar datos. Bueno, aquí los campos de entrada y los botones también son muy útiles.

Los botones y campos de entrada permiten al usuario influir directamente en el programa y su comportamiento. Es como una varita mágica que convierte una ventana pasiva en una herramienta activa.

¿Cómo luce un botón en Tkinter?

La librería Tkinter ofrece el widget Button para crear botones. Este widget es bastante flexible y permite configurar el texto del botón, el color e incluso asignar una acción que se ejecutará al presionar el botón.

Así es como se hace:

import tkinter as tk

# Crear la ventana principal
root = tk.Tk()
root.title("Mi aplicación")

# Crear un botón y agregarlo a la ventana
button = tk.Button(root, text="¡Presióname!", command=lambda: print("¡Botón presionado!"))
button.pack()

# Ejecutar el bucle principal
root.mainloop()

Nota el parámetro command: permite asociar una acción específica al botón. En este ejemplo, al presionar el botón se imprimirá el mensaje "¡Botón presionado!" en la consola.

Personalizando el botón con estilo

Por supuesto, quieres que tus botones no solo funcionen, sino que también se vean atractivos. Agreguemos un poco de creatividad:

button = tk.Button(root, text="¡Presióname!", command=lambda: print("¡Botón presionado!"), bg="blue", fg="white", font=("Helvetica", 16))
button.pack(pady=10)
  • bg y fg — controlan el color de fondo y del texto, respectivamente.
  • font — permite elegir el tipo y tamaño de la fuente.
  • pady — márgenes verticales para que el botón respire.

2. Campos de Entrada con Tkinter

Pasemos a los campos de entrada de texto. Son pequeñas ventanas de texto donde tu usuario puede ingresar lo que desee (y no solo eso).

Entrada de texto simple

Crear un campo de entrada es súper fácil utilizando el widget Entry:

entry = tk.Entry(root)
entry.pack()

Pero, ¿de qué sirve un campo creado si no puedes obtener los datos? ¡Aprendamos cómo hacerlo!

def get_input():
    user_input = entry.get()
    print(f"El usuario ingresó: {user_input}")

entry = tk.Entry(root)
entry.pack()

button = tk.Button(root, text="Obtener entrada", command=get_input)
button.pack()

¡Genial! Ahora tenemos un botón que muestra en pantalla lo que se ingresó en el campo.

Estilizando el campo de entrada

Al igual que con los botones, los campos de entrada también pueden estilizarse:

entry = tk.Entry(root, font=("Arial", 14), fg="black", bg="lightyellow")
entry.pack(padx=5, pady=5)

Aquí configuramos la fuente, el color del texto y del fondo. Los parámetros padx y pady añaden márgenes horizontales y verticales respectivamente.

3. Aplicación Práctica

Juntémoslo todo y creemos una aplicación donde el usuario pueda ingresar datos y presionar un botón para procesar la información ingresada. Crearemos una pequeña calculadora que suma los números ingresados.

import tkinter as tk

def calculate():
    try:
        # Obtener los valores de los campos
        number1 = float(entry1.get())
        number2 = float(entry2.get())
        
        # Calcular la suma
        result = number1 + number2
        
        # Actualizar el texto del resultado
        result_label.config(text=f"Resultado: {result}")
    except ValueError:
        result_label.config(text="¡Ingresa números válidos!")

# Crear la ventana principal
root = tk.Tk()
root.title("Calculadora Simple")

# Campos de entrada para los números
entry1 = tk.Entry(root, width=10)
entry1.pack(pady=5)
entry2 = tk.Entry(root, width=10)
entry2.pack(pady=5)

# Botón para calcular
calculate_button = tk.Button(root, text="Sumar", command=calculate)
calculate_button.pack(pady=10)

# Etiqueta para mostrar el resultado
result_label = tk.Label(root, text="Resultado: ")
result_label.pack()

# Ejecutar el bucle principal
root.mainloop()

Así de simple creamos una pequeña pero poderosa aplicación-calculadora que permite al usuario ingresar datos y ver el resultado.

Depuración al trabajar con widgets

Al trabajar con botones y campos de entrada, podrías encontrarte con un par de errores típicos. Por ejemplo, a menudo sucede que el controlador del botón no se ejecuta. La razón: el parámetro command está ausente o hay un error en la sintaxis de la función lambda.

También suelen ocurrir errores relacionados con datos ingresados incorrectamente. Por eso, no olvides verificar y manejar los datos ingresados, como hicimos en nuestra calculadora, para evitar problemas.

¡Eso es todo por hoy! Ahora sabes cómo agregar botones y campos de entrada a tu aplicación para que la interacción con el usuario sea más interactiva e interesante. El siguiente paso será el manejo de eventos al presionar botones, pero eso será tema de la próxima lección.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION