Python GUI Programming

Dominando ttk.Combobox de Tkinter: Una Guía Completa

Spread the love

El widget ttk.Combobox en Tkinter proporciona una forma conveniente de crear menús desplegables en sus aplicaciones GUI de Python. Este tutorial lo guiará a través de sus características y funcionalidades clave, proporcionando ejemplos prácticos para ayudarlo a integrar cuadros combinados en sus proyectos de manera efectiva.

Tabla de contenido:

  1. Ejemplo básico de Combobox
  2. Personalización de la apariencia: Fuentes y estilos
  3. Manejo de eventos e interacción del usuario
  4. Actualización dinámica de los valores del Combobox
  5. Creación de cuadros combinados de solo lectura

1. Ejemplo básico de Combobox

Comencemos con un ejemplo simple para ilustrar la creación y el uso de un ttk.Combobox:


import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.title("Ejemplo de Combobox")

combo = ttk.Combobox(root, values=["Opción 1", "Opción 2", "Opción 3"])
combo.pack(pady=20)
combo.current(0)  # Establecer el valor predeterminado en "Opción 1"

root.mainloop()

Este código crea una ventana principal, agrega un cuadro combinado con tres opciones predefinidas y establece la selección predeterminada en «Opción 1». Recuerde importar tanto tkinter como ttk.

2. Personalización de la apariencia: Fuentes y estilos

Puede personalizar la apariencia del cuadro combinado, como su fuente:


import tkinter as tk
from tkinter import ttk
import tkinter.font as tkFont

root = tk.Tk()
root.title("Ejemplo de estilo de Combobox")

myFont = tkFont.Font(family="Helvetica", size=12, weight="bold")
combo = ttk.Combobox(root, values=["Opción A", "Opción B", "Opción C"], font=myFont)
combo.pack(pady=20)
combo.current(0)

root.mainloop()

Este ejemplo muestra cómo crear una fuente personalizada y aplicarla al cuadro combinado. Experimente con diferentes familias de fuentes, tamaños y pesos para lograr el aspecto deseado.

3. Manejo de eventos e interacción del usuario

Para responder a las selecciones del usuario, vincule eventos al cuadro combinado. El evento <<ComboboxSelected>> se activa cuando un usuario selecciona un elemento:


import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.title("Manejo de eventos de Combobox")

def combo_selected(event):
    selected_item = combo.get()
    print(f"Elemento seleccionado: {selected_item}")

combo = ttk.Combobox(root, values=["Opción 1", "Opción 2", "Opción 3"])
combo.pack(pady=20)
combo.current(0)
combo.bind("<<ComboboxSelected>>", combo_selected)

root.mainloop()

Este código define una función combo_selected que imprime el elemento seleccionado. El método bind conecta esta función al evento <<ComboboxSelected>>.

4. Actualización dinámica de los valores del Combobox

Puede actualizar las opciones del cuadro combinado dinámicamente en tiempo de ejecución:


import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.title("Combobox dinámico")

combo = ttk.Combobox(root)
combo.pack(pady=20)

def update_combo():
    new_values = ["Nueva opción 1", "Nueva opción 2", "Nueva opción 3"]
    combo["values"] = new_values

button = tk.Button(root, text="Actualizar Combobox", command=update_combo)
button.pack()

root.mainloop()

Un botón activa la función update_combo, que modifica el atributo values del cuadro combinado.

5. Creación de cuadros combinados de solo lectura

Para hacer que el cuadro combinado sea de solo lectura (evitar la entrada de texto directa), use la opción state:


import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.title("Combobox de solo lectura")

combo = ttk.Combobox(root, values=["Opción 1", "Opción 2", "Opción 3"], state="readonly")
combo.pack(pady=20)
combo.current(0)

root.mainloop()

Establecer state="readonly" deshabilita la entrada de texto directa, permitiendo solo la selección del menú desplegable.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *