Está en la página 1de 9

ESTADO PLURINACIONAL DE BOLIVIA

MINISTERIO DE EDUCACIÓN
INSTITUTO TECNOLÓGICO “BOLIVIA MAR ”

Investigación: Librería TKINDER

Carrera. - Estructura de Datos


Docente. - Lic. Marco Pully
Año. - 2do B
Estudiante. - Marca Cruz Willan Diacomo
Gestión. - 2024
Trabajo de Investigación Librería TKINDER

Identifique los principales elementos de desarrollo de interfaces que brinda la librería Tkinter de Python.
Muestre ejemplos prácticos de cada elemento que brinda el Tkinter.

Tkinter es una biblioteca estándar de Python que se utiliza para crear interfaces gráficas de usuario (GUI, por sus
siglas en inglés). Proporciona una forma sencilla de crear ventanas, botones, cuadros de texto y otros elementos
de interfaz gráfica. Tkinter se basa en el toolkit Tk, que es una biblioteca gráfica multiplataforma desarrollada
originalmente para Tcl (Tool Command Language).

Con Tkinter, se pueden diseñar y construir interfaces gráficas de usuario interactivas para sus programas de
Python. Proporciona una variedad de widgets (componentes de interfaz gráfica) que se pueden utilizar para crear
aplicaciones con botones, cajas de texto, menús desplegables, listas y mucho más. También es posible
personalizar la apariencia de los widgets y responder a eventos, como hacer clic en un botón o escribir en un
cuadro de texto.

Widgets

Los widgets en Tkinter son los componentes básicos utilizados para crear interfaces gráficas de usuario.
Representan los elementos visuales con los que los usuarios interactúan, como botones, etiquetas, cuadros de
texto, listas, etc. Tkinter proporciona una amplia gama de widgets que se pueden utilizar para diseñar y construir
interfaces gráficas interactivas.

Algunos de los widgets más comunes en Tkinter:

Label (Etiqueta): Es un widget utilizado para mostrar texto o imágenes. Puede ser utilizado para proporcionar
información o instrucciones a los usuarios.

Button (Botón): Es un widget que permite a los usuarios realizar una acción cuando se hace clic en él. Se utiliza
para agregar funcionalidad a la interfaz, como enviar un formulario o realizar una operación.

Entry (Cuadro de texto): Es un widget que permite a los usuarios ingresar y editar texto. Es útil para recopilar
datos o información del usuario.
Frame (Marco): Es un widget utilizado para organizar y agrupar otros widgets. Se utiliza para crear estructuras
más complejas y organizar la interfaz en secciones lógicas.

Listbox (Lista): Es un widget que muestra una lista de elementos en forma de lista desplegable. Los usuarios
pueden seleccionar uno o varios elementos de la lista.

Checkbutton (Casilla de verificación): Es un widget que representa una opción o estado binario. Los usuarios
pueden marcar o desmarcar la casilla de verificación para indicar su elección.

Radiobutton (Botón de opción): Es un widget similar a un checkbutton, pero permite a los usuarios seleccionar
solo una opción entre varias opciones exclusivas.
Ejemplos prácticos de los elementos de Tkinder

Widgets:

Tkinter proporciona una variedad de widgets (componentes de la interfaz de usuario) que se pueden utilizar
para construir una GUI.

Gestión de geometría:

Tkinter ofrece diferentes métodos para organizar y gestionar la geometría de los widgets en una ventana o
marco. Los administradores de geometría más comunes son pack(), grid() y place().
Eventos y manejo de eventos:

Tkinter permite manejar eventos del usuario, como hacer clic en un botón o ingresar texto en un campo de
entrada, mediante la vinculación de funciones a esos eventos.

Estilos y apariencia:

Tkinter permite personalizar la apariencia de los widgets utilizando opciones de estilo y configuración de
propiedades.
Listbox (Lista)

El widget Listbox en Tkinter se utiliza para mostrar una lista de elementos en forma de cuadro de lista. Permite
al usuario seleccionar uno o varios elementos de la lista.
Proyecto.- Combinar todas las herramientas posibles de Tkinder

import tkinter as tk
from tkinter import messagebox

def agregar_animal():
nombre = entry_nombre.get().strip()
precio = entry_precio.get().strip()
pago = metodo_pago.get()

if nombre != '' and precio != '':


item = f"Mascota: {nombre}, Precio: {precio}, Pago: {pago}"
if item not in lista_animales.get(0, tk.END):
lista_animales.insert(tk.END, item)
entry_nombre.delete(0, tk.END)
entry_precio.delete(0, tk.END)
metodo_pago.set("Contado")
else:
messagebox.showwarning(
"Error", "Ya existe un animal con ese nombre.")
else:
messagebox.showwarning(
"Error", "Debes ingresar el nombre y precio del animal.")

def eliminar_animal():
seleccionado = lista_animales.curselection()
if seleccionado:
lista_animales.delete(seleccionado)
entry_nombre.delete(0, tk.END)
entry_precio.delete(0, tk.END)
metodo_pago.set("Contado")
else:
messagebox.showwarning(
"Error", "Debes seleccionar un animal para eliminar.")

def actualizar_animal():
nombre = entry_nombre.get().strip()
precio = entry_precio.get().strip()
pago = metodo_pago.get()

if nombre != '' and precio != '':


nuevo_item = f"Mascota: {nombre}, Precio: {precio}, Pago: {pago}"
seleccionado = lista_animales.curselection()

if seleccionado:
lista_animales.delete(seleccionado)
lista_animales.insert(seleccionado, nuevo_item)
else:
messagebox.showwarning(
"Error", "Debes seleccionar un animal para actualizar.")
else:
messagebox.showwarning(
"Error", "Debes ingresar el nombre y precio del animal.")

def obtener_datos_item(item):
partes = item.split(", ")
nombre = partes[0].split(": ")[1]
precio = partes[1].split(": ")[1]
pago = partes[2].split(": ")[1]
return nombre, precio, pago

ventana = tk.Tk()
ventana.title("Tienda de Mascotas")

frame_datos = tk.Frame(ventana)
frame_datos.place(x=20, y=20)

label_nombre = tk.Label(frame_datos, text="Mascota:")


label_nombre.grid(row=0, column=0)
entry_nombre = tk.Entry(frame_datos)
entry_nombre.grid(row=0, column=1)

label_precio = tk.Label(frame_datos, text="Precio:")


label_precio.grid(row=1, column=0)
entry_precio = tk.Entry(frame_datos)
entry_precio.grid(row=1, column=1)
frame_datos.pack()

frame_pago = tk.Frame(ventana)
frame_pago.place(x=20, y=70)

metodo_pago = tk.StringVar(value="Contado")

label_pago = tk.Label(frame_pago, text="Método de pago:")


label_pago.pack()

radio_contado = tk.Radiobutton(
frame_pago, text="Contado", variable=metodo_pago, value="Contado")
radio_contado.pack()

radio_credito = tk.Radiobutton(
frame_pago, text="Crédito", variable=metodo_pago, value="Crédito")
radio_credito.pack()
frame_pago.pack()
frame_botones = tk.Frame(ventana)
frame_botones.place(x=20, y=130)

boton_agregar = tk.Button(
frame_botones, text="Agregar", command=agregar_animal)
boton_agregar.pack()

boton_eliminar = tk.Button(
frame_botones, text="Eliminar", command=eliminar_animal)
boton_eliminar.pack()

boton_actualizar = tk.Button(
frame_botones, text="Actualizar", command=actualizar_animal)
boton_actualizar.pack()

frame_botones.pack()

frame_lista = tk.Frame(ventana)
frame_lista.place(x=20, y=220)

lista_animales = tk.Listbox(frame_lista, width=50, height=10)


lista_animales.pack()
frame_lista.pack()
ventana.mainloop()

Grafica final del proyecto

También podría gustarte