Guía Completa de
Personalización en Tkinter
1️⃣ Ventana Principal
La ventana
principal es el contenedor donde estarán todos los widgets de la aplicación. Se
puede personalizar el tamaño, color, título, icono y comportamiento.
import
tkinter as tk
ventana = tk.Tk()
ventana.title("Encuesta de
Bebidas") # Título de la
ventana
ventana.geometry("500x400") # Tamaño de la ventana (ancho x
alto)
ventana.resizable(False, False) # Evitar que la ventana se redimensione
ventana.configure(bg="#f0f8ff") # Color de fondo
ventana.iconbitmap("icono.ico") # Icono personalizado (opcional)
ventana.attributes("-topmost",
True) # Mantener ventana encima de
otras
Opciones adicionales:
- ventana.state("zoomed") →
Abrir ventana maximizada.
- ventana.attributes("-alpha",
0.9) →
Transparencia de la ventana.
2️⃣ Etiquetas (Label)
Las
etiquetas se usan para mostrar texto o información estática en la ventana. Se
pueden personalizar fuentes, colores, bordes y posición.
label = tk.Label(ventana,
text="Selecciona tu
bebida:",
font=("Arial", 14,
"bold"), # Fuente, tamaño y
estilo
fg="#333333", # Color del texto
bg="#f0f8ff", # Color de fondo
relief="raised",
# Estilo de borde
bd=3) # Grosor del borde
label.pack(pady=10) # Separación vertical
Opciones:
- anchor → Posición del texto dentro de
la etiqueta (w, e, center).
- justify → Para texto multilínea (left, right, center).
3️⃣ Botones (Button)
Permiten que
el usuario ejecute una acción al presionarlos.
btn
= tk.Button(ventana,
text="Mostrar
Selección",
font=("Comic Sans
MS", 12, "bold"),
fg="white",
bg="#4CAF50",
activebackground="#45a049",
activeforeground="yellow",
relief="groove",
bd=4,
padx=10,
pady=5,
command=lambda:
print("¡Click!"))
btn.pack(pady=15)
Opciones:
- state="disabled" → deshabilitar botón.
- image=imagen →
colocar un icono o imagen en el botón.
- width y height → tamaño en caracteres.
4️⃣ Cuadros de texto (Entry)
Se usan para
que los usuarios ingresen información.
entry
= tk.Entry(ventana,
font=("Arial", 12),
bg="#ffffff",
fg="#000000",
bd=3,
relief="sunken",
justify="center", # Centrar el texto
width=30)
entry.pack(pady=5)
Opciones:
- show="*"
→ para contraseñas.
- state="readonly" → solo lectura.
- highlightcolor,
highlightbackground
→ borde de enfoque personalizado.
5️⃣
Radiobutton
Se utiliza
para seleccionar una opción dentro de un grupo.
bebida_var = tk.StringVar()
tk.Radiobutton(ventana,
text="Café", variable=bebida_var, value="Café",
font=("Arial",
12),
bg="#f0f8ff",
fg="#000000",
selectcolor="#ffcccc").pack(anchor="w")
tk.Radiobutton(ventana,
text="Té", variable=bebida_var, value="Té",
font=("Arial", 12),
bg="#f0f8ff",
fg="#000000",
selectcolor="#ffcccc").pack(anchor="w")
Opciones:
- selectcolor →
color del círculo cuando está seleccionado.
- indicatoron →
cambia entre círculo o botón.
6️⃣
Checkbutton
Permite
seleccionar una o varias opciones de manera independiente.
azucar_var = tk.IntVar()
tk.Checkbutton(ventana,
text="Azúcar", variable=azucar_var,
font=("Arial", 12),
bg="#f0f8ff",
fg="#000000",
selectcolor="#ffff99",
relief="ridge",
bd=2,
padx=5,
pady=5).pack(anchor="w")
Opciones:
- onvalue / offvalue →
valor que toma la variable si está activado o no.
- indicatoron →
cambia el estilo del checkbox.
7️⃣
Listbox
Permite
mostrar listas de elementos seleccionables.
listbox
= tk.Listbox(ventana, font=("Arial", 12), bg="#ffffff",
fg="#333333",
selectbackground="#4CAF50",
selectforeground="white",
width=40, height=6, bd=3,
relief="sunken")
listbox.pack(pady=10)
listbox.insert(tk.END,
"Café")
listbox.insert(tk.END,
"Té")
listbox.insert(tk.END,
"Chocolate")
Opciones:
- selectmode="single" o "multiple" →
selección simple o múltiple.
- exportselection=False →
evitar que pierda la selección al cambiar de widget.
8️⃣
Posicionamiento de Widgets
Tkinter
tiene 3 formas de posicionar widgets:
- pack() →
simple, apila vertical u horizontal.
- side="left/right/top/bottom", fill, expand.
- grid() →
organiza en filas y columnas.
3. label.grid(row=0,
column=0, padx=10, pady=5)
4. entry.grid(row=0,
column=1, padx=10, pady=5)
- sticky → alinear dentro de la celda
(w, e, n, s).
- place() →
posición absoluta o relativa.
6. btn.place(x=50,
y=100, width=100, height=30)
9️⃣ Colores y Fuentes
- Colores: "red" o "#ff0000".
- Fuentes: font=("Arial",
12, "bold").
- Bordes: relief="flat/raised/sunken/groove/ridge".
- Tamaño: width, height, padx, pady.
🔟 Extras y Mejoras
- Frames →
secciones dentro de la ventana:
·
frame = tk.Frame(root,
bg="#eeeeee", bd=2, relief="ridge")
·
frame.pack(padx=10, pady=10,
fill="both", expand=True)
- Imágenes en widgets:
Label(image=img)
o Button(image=img).
- Tooltips →
usando librerías externas para mostrar información al pasar el mouse.
- Cambiar estado de widgets: disabled, readonly.
- Animaciones
simples: usando after() para actualizar widgets cada
cierto tiempo.
Comentarios
Publicar un comentario