Guia de Tkinter Python
Guia de Tkinter Python
Tkinter es la biblioteca estándar de Python para crear interfaces gráficas de usuario (GUI). Esta
guía proporciona una visión general rápida de los conceptos y elementos más importantes de
Tkinter.
Los widgets son los elementos de la interfaz de usuario. Aquí algunos de los más usados:
Los "Geometry Managers" controlan cómo se colocan los widgets dentro de sus contenedores.
● pack(): Coloca los widgets en un orden simple, uno encima o al lado del otro.
○ side: tk.TOP, tk.BOTTOM, tk.LEFT, tk.RIGHT (posición).
○ fill: tk.NONE, tk.X, tk.Y, tk.BOTH (cómo se expande el widget).
○ expand: True o False (si el widget se expande para llenar el espacio extra).
○ padx, pady: Añade espacio alrededor del widget.
● grid(): Coloca los widgets en una cuadrícula de filas y columnas.
○ row, column: Fila y columna de la celda.
○ rowspan, columnspan: Número de filas/columnas que ocupa el widget.
○ sticky: tk.N, tk.S, tk.E, tk.W (alineación y estiramiento dentro de la celda).
Se pueden combinar, por ejemplo sticky=tk.NW para pegar a la esquina
superior izquierda.
○ padx, pady: Añade espacio alrededor del widget.
● place(): Coloca los widgets en una posición absoluta dentro de su contenedor.
○ x, y: Coordenadas de la esquina superior izquierda del widget.
○ relx, rely: Posiciones relativas (0 a 1) dentro del contenedor.
○ width, height: Tamaño del widget.
○ relwidth, relheight: Tamaño relativo del widget.
4. Configuración de Widgets
Opciones comunes:
Tkinter tiene sus propias clases para manejar variables, que están integradas con los widgets:
Métodos importantes:
Ejemplo:
mi_variable = tk.StringVar()
entrada = tk.Entry(root, textvariable=mi_variable) # связываает Entry и переменную
entrada.pack()
def obtener_valor():
print("Valor:", mi_variable.get())
Tkinter responde a eventos (clics del ratón, pulsaciones de teclas, etc.). Los manejadores de
eventos son funciones que se ejecutan cuando ocurren esos eventos.
Ejemplo:
def hacer_algo(event):
print("Clic en el botón en las coordenadas:", event.x, event.y)
Eventos comunes:
● <Button-1>: Clic izquierdo del ratón. <Button-2>: Clic central. <Button-3>: Clic
derecho.
● <KeyPress-nombreTecla>: Pulsación de una tecla (ej., <KeyPress-a>,
<KeyPress-Enter>). <KeyRelease>
● "<Return>": Pulsación de la tecla Enter.
● "<Configure>": El widget cambia de tamaño.
● "<Destroy>": El widget es destruido.
7. Diálogos Comunes
Ejemplo:
def mostrar_mensaje():
messagebox.showinfo("Título", "Este es un mensaje informativo.")
frame = tk.Frame(root)
frame.grid(column=0, row=0, sticky=(tk.N, tk.W, tk.E, tk.S)) # El frame se expande
# Los widgets dentro del frame también pueden usar grid y sticky para expandirse.
boton1 = tk.Button(frame, text="Botón 1")
boton1.grid(column=0, row=0, sticky=(tk.N, tk.W, tk.E, tk.S))
boton2 = tk.Button(frame, text="Botón 2")
boton2.grid(column=1, row=0, sticky=(tk.N, tk.W, tk.E, tk.S))
frame.columnconfigure(0, weight=1)
frame.columnconfigure(1, weight=1)
frame.rowconfigure(0, weight=1)
Esto hace que las columnas y filas se expandan al redimensionar la ventana, y el argumento
sticky hace que los widgets se estiren para llenar el espacio disponible en sus celdas.