0% encontró este documento útil (0 votos)
54 vistas8 páginas

Guia de Tkinter Python

La guía de acceso rápido de Tkinter ofrece una introducción a la creación de interfaces gráficas en Python, describiendo la estructura básica de una aplicación y los widgets comunes. También detalla métodos de colocación de widgets, configuración, manejo de eventos y diálogos predefinidos. Finalmente, se abordan técnicas avanzadas para el diseño de layouts utilizando el gestor de geometría grid.

Cargado por

Silvia Fernandez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
54 vistas8 páginas

Guia de Tkinter Python

La guía de acceso rápido de Tkinter ofrece una introducción a la creación de interfaces gráficas en Python, describiendo la estructura básica de una aplicación y los widgets comunes. También detalla métodos de colocación de widgets, configuración, manejo de eventos y diálogos predefinidos. Finalmente, se abordan técnicas avanzadas para el diseño de layouts utilizando el gestor de geometría grid.

Cargado por

Silvia Fernandez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

Guía de Acceso Rápido de Tkinter

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.

1. Estructura Básica de una Aplicación Tkinter

Toda aplicación Tkinter sigue una estructura básica:

import tkinter as tk # Importar Tkinter (generalmente se importa como tk)

# 1. Crear la ventana principal


root = tk.Tk() # Instancia de la clase Tk, la ventana principal

# 2. Crear y configurar widgets (botones, etiquetas, entradas de texto, etc.)


etiqueta = tk.Label(root, text="¡Hola, Tkinter!") # Crear una etiqueta
etiqueta.pack() # Colocar la etiqueta en la ventana

boton = tk.Button(root, text="Haz clic", command=mi_funcion) # Crear un botón


boton.pack()

# 3. Iniciar el bucle de eventos


root.mainloop() # Bucle principal que mantiene la ventana abierta y responde a eventos
2. Widgets Comunes

Los widgets son los elementos de la interfaz de usuario. Aquí algunos de los más usados:

●​ Tk(): La ventana principal de la aplicación.


●​ Label: Muestra texto o imágenes.
●​ Button: Botón para realizar acciones. El argumento command especifica la función a
llamar al hacer clic.
●​ Entry: Campo de entrada de texto de una sola línea.
●​ Text: Área de texto multilínea.
●​ Frame: Contenedor para otros widgets, ayuda a organizarlos.
●​ Canvas: Para dibujar gráficos, formas, imágenes.
●​ Checkbutton: Botón de verificación para opciones de sí/no.
●​ Radiobutton: Botón de opción para elegir una opción de un grupo.
●​ Listbox: Muestra una lista de opciones.
●​ Menu: Menú de la ventana.
●​ Toplevel: Crea una ventana secundaria.
●​ ScrolledText: Área de texto con scrollbar integrado. Importar con: from tkinter
import scrolledtext
●​ ttk Widgets: Versiones tematizadas de los widgets estándar que se adaptan mejor al
estilo del sistema operativo. Ejemplo: ttk.Button, ttk.Label, ttk.Frame. Importar
con from tkinter import ttk.
3. Métodos de Colocación de Widgets

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

La apariencia y el comportamiento de los widgets se pueden personalizar mediante opciones


(también llamadas atributos o propiedades). Se configuran al crear el widget o después con el
método config().

etiqueta = tk.Label(root, text="Texto", fg="blue", font=("Arial", 12)) # Al crear


etiqueta.config(text="Nuevo Texto", bg="yellow") # Después, con config()

Opciones comunes:

●​ text: Texto a mostrar.


●​ bg, background: Color de fondo.
●​ fg, foreground, fg: Color del texto.
●​ font: Fuente del texto (nombre, tamaño, estilo).
●​ width, height: Tamaño del widget.
●​ padx, pady: Espacio alrededor del contenido del widget.
●​ relief: Estilo del borde (tk.RAISED, tk.SUNKEN, tk.FLAT, etc.).
●​ command: Función a llamar cuando se interactúa con el widget (ej., en un Button).
●​ variable: Para widgets como Checkbutton y Radiobutton, asocia una variable de
Tkinter.
●​ value: Valor del Radiobutton.
●​ state: Estado del widget (tk.NORMAL, tk.DISABLED, tk.ACTIVE).
●​ wrap: Para widgets Text, controla cómo se ajusta el texto (tk.NONE, tk.CHAR,
tk.WORD).
5. Variables de Tkinter

Tkinter tiene sus propias clases para manejar variables, que están integradas con los widgets:

●​ StringVar(): Para cadenas de texto.


●​ IntVar(): Para enteros.
●​ DoubleVar(): Para números de punto flotante.
●​ BooleanVar(): Para valores booleanos.

Métodos importantes:

●​ get(): Obtiene el valor de la variable.


●​ set(value): Establece el valor de la variable.

Ejemplo:

mi_variable = tk.StringVar()
entrada = tk.Entry(root, textvariable=mi_variable) # связываает Entry и переменную
entrada.pack()

def obtener_valor():
print("Valor:", mi_variable.get())

boton = tk.Button(root, text="Obtener valor", command=obtener_valor)


boton.pack()
6. Eventos y Manejadores de Eventos

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.

●​ bind(evento, manejador): Asocia un evento a un manejador para un widget.

Ejemplo:

def hacer_algo(event):
print("Clic en el botón en las coordenadas:", event.x, event.y)

boton = tk.Button(root, text="Haz clic aquí")


boton.bind("<Button-1>", hacer_algo) # <Button-1> es clic izquierdo del ratón
boton.pack()

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

Tkinter proporciona diálogos predefinidos para tareas comunes:

●​ messagebox: Para mostrar mensajes (informativos, de advertencia, de error, etc.).


○​ showinfo(), showwarning(), showerror(), askyesno(),
askokcancel(), etc.
●​ filedialog: Para abrir y guardar archivos.
○​ askopenfilename(), asksaveasfilename().
●​ colorchooser: Para elegir un color.
○​ askcolor()

Ejemplo:

from tkinter import messagebox

def mostrar_mensaje():
messagebox.showinfo("Título", "Este es un mensaje informativo.")

boton = tk.Button(root, text="Mostrar mensaje", command=mostrar_mensaje)


boton.pack()
8. Layout con Grid y Pesos

Para un control más avanzado sobre el layout, especialmente al redimensionar la ventana, se


usa grid junto con columnconfigure y rowconfigure.

root.columnconfigure(0, weight=1) # La columna 0 se expande


root.rowconfigure(0, weight=1) # La fila 0 se expande

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.

También podría gustarte