En esta tercera parte del tutorial sobre cómo crear un sistema de ventas con Python y Tkinter, nos centraremos en la creación de la ventana principal de la aplicación. En las partes anteriores, hemos visto cómo crear la interfaz de usuario y cómo agregar productos a la base de datos. Ahora, es el momento de mostrar al usuario una lista de productos y permitirle realizar ventas.
Para comenzar, asegúrate de que tienes instalado Python en tu sistema y que Tkinter está incluido en la instalación. Si no lo tienes, puedes instalarlo fácilmente con pip install tkinter en tu terminal.
- Crear la ventana principal:
Lo primero que necesitamos hacer es crear la ventana principal de nuestra aplicación. Para ello, crearemos una nueva clase llamada VentanaPrincipal y la inicializaremos con un contenedor de productos. A continuación, vamos a agregar una tabla en la que se mostrarán los productos disponibles.
import tkinter as tk
from tkinter import ttk
class VentanaPrincipal:
def __init__(self, root):
self.root = root
self.root.title("Sistema de Ventas")
self.productos = []
self.table = ttk.Treeview(root, columns=('ID', 'Nombre', 'Precio'))
self.table.heading('#0', text='ID')
self.table.column('#0', minwidth=0, width=50)
self.table.heading('#1', text='Nombre')
self.table.column('#1', minwidth=0, width=200)
self.table.heading('#2', text='Precio')
self.table.column('#2', minwidth=0, width=100)
self.table.pack()
if __name__ == "__main__":
root = tk.Tk()
ventana_principal = VentanaPrincipal(root)
root.mainloop()
En este código, creamos una instancia de la clase VentanaPrincipal y la mostramos en la ventana raíz con root.mainloop(). La tabla se muestra en la ventana con tres columnas: ID, Nombre y Precio.
- Mostrar productos en la tabla:
Ahora que tenemos la tabla creada, debemos mostrar los productos en ella. Para ello, podemos crear un método en la clase VentanaPrincipal que recorra la lista de productos y agregue una fila por cada producto.
class VentanaPrincipal:
def __init__(self, root):
...
self.table.pack()
def mostrar_productos(self):
for producto in self.productos:
self.table.insert('', 'end', values=producto)
if __name__ == "__main__":
root = tk.Tk()
ventana_principal = VentanaPrincipal(root)
ventana_principal.mostrar_productos()
root.mainloop()
En este código, creamos un método mostrar_productos que recorre la lista de productos y agrega una fila por cada uno en la tabla.
- Crear un botón para realizar ventas:
A continuación, vamos a agregar un botón en la ventana principal que permita realizar ventas. Para ello, creamos un método en la clase VentanaPrincipal que abra una nueva ventana donde se pueda introducir la cantidad de productos a vender.
class VentanaPrincipal:
def __init__(self, root):
...
self.boton_venta = tk.Button(root, text='Realizar venta', command=self.realizar_venta)
self.boton_venta.pack()
def realizar_venta(self):
nueva_ventana = tk.Toplevel(self.root)
...
En este código, creamos un botón llamado realizar_venta que abrirá una nueva ventana cuando se haga clic en él.
Con estos pasos, hemos creado la ventana principal de nuestra aplicación y hemos permitido al usuario ver los productos disponibles y realizar ventas. En la próxima parte del tutorial, veremos cómo realizar ventas y actualizar la base de datos de productos.
eres una gran bendicion para mi Mil Gracias, desde RD.
Hola Kevin, ¿depronto tienes algún repositorio en github donde podamos ver el código del proyecto?
Muchas gracias por todo
Saludos
Excelente tu aporte, te haces entender muy bien.