Python Tkinter Sales System Tutorial – Part #8

Posted by


En esta octava parte de nuestro tutorial sobre cómo crear un sistema de ventas con Python y Tkinter, vamos a seguir trabajando en la funcionalidad de nuestro programa. En esta ocasión, nos enfocaremos en la creación de la funcionalidad para la gestión de los productos en el inventario.

Para empezar, necesitaremos crear una nueva ventana en la que se mostrará la lista de productos disponibles en el inventario. Para ello, podemos crear una función llamada mostrar_productos() que se encargará de crear una nueva ventana y mostrar la lista de productos.

def mostrar_productos():
    # Crear una nueva ventana
    productos_window = Toplevel(root)
    productos_window.title("Inventario de Productos")

    # Crear una etiqueta para mostrar el título de la ventana
    titulo_label = Label(productos_window, text="Lista de Productos")
    titulo_label.pack()

    # Crear una tabla para mostrar los productos
    productos_table = ttk.Treeview(productos_window, columns=('ID', 'Nombre', 'Precio', 'Cantidad'))
    productos_table.heading('#0', text='ID')
    productos_table.column('#0', width=50)
    productos_table.heading('#1', text='Nombre')
    productos_table.column('#1', width=200)
    productos_table.heading('#2', text='Precio')
    productos_table.column('#2', width=100)
    productos_table.heading('#3', text='Cantidad')
    productos_table.column('#3', width=100)
    productos_table.pack()

    # Mostrar los productos en la tabla
    for producto in productos:
        productos_table.insert('', 'end', text=producto['id'], values=(producto['nombre'], producto['precio'], producto['cantidad']))

En esta función, creamos una nueva ventana con la lista de productos y la mostramos en una tabla con cuatro columnas: ID, Nombre, Precio y Cantidad. Luego recorremos la lista de productos y los insertamos en la tabla.

Ahora, necesitamos crear una forma de agregar nuevos productos al inventario. Podemos hacerlo mediante una función llamada agregar_producto() que abrirá una ventana con un formulario para ingresar la información del producto.

def agregar_producto():
    # Crear una nueva ventana
    agregar_producto_window = Toplevel(root)
    agregar_producto_window.title("Agregar Producto")

    # Crear etiquetas y campos de entrada para el formulario
    nombre_label = Label(agregar_producto_window, text="Nombre:")
    nombre_label.pack()
    nombre_entry = Entry(agregar_producto_window)
    nombre_entry.pack()

    precio_label = Label(agregar_producto_window, text="Precio:")
    precio_label.pack()
    precio_entry = Entry(agregar_producto_window)
    precio_entry.pack()

    cantidad_label = Label(agregar_producto_window, text="Cantidad:")
    cantidad_label.pack()
    cantidad_entry = Entry(agregar_producto_window)
    cantidad_entry.pack()

    # Función para guardar el producto en el inventario
    def guardar_producto():
        nuevo_producto = {
            'id': len(productos) + 1,
            'nombre': nombre_entry.get(),
            'precio': float(precio_entry.get()),
            'cantidad': int(cantidad_entry.get())
        }
        productos.append(nuevo_producto)
        agregar_producto_window.destroy()

    # Crear botón para guardar el producto
    guardar_button = Button(agregar_producto_window, text="Guardar", command=guardar_producto)
    guardar_button.pack()

En esta función, creamos una nueva ventana con un formulario para ingresar el nombre, precio y cantidad del nuevo producto. Al hacer clic en el botón "Guardar", se crea un nuevo diccionario con la información del producto y se agrega a la lista de productos.

Con estas dos funciones, ahora tenemos la capacidad de mostrar la lista de productos en el inventario y agregar nuevos productos. En la siguiente parte de nuestro tutorial, continuaremos trabajando en la funcionalidad del sistema de ventas. ¡Espero que este tutorial te haya sido útil y que sigas disfrutando del proceso de desarrollo con Python y Tkinter!

0 0 votes
Article Rating
7 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@cesarcoraquillo
1 month ago

gracias eres un crack una consulta como puedo hacer para se elimine todo el registro del programa de fracturas registradas y que empiece desde cero también prácticamente también el numero de boleta que se reinicie

@sugaralipadillacarrera4626
1 month ago

Buenos días!!

Una pregunta, estuve intentando colocar en la ventana ventas qué cuando seleccione un producto me aparezca la cantidad de productos que hay en el inventario, pero no me funcionó lo que hice.
Como lo podría hacer?
Gracias.

@gronedesconocido9672
1 month ago

una consulta dijiste que en el minuto 33.53 es sin decimales como lo hago para que sea con decimales
por favor me podrías ayudar

@dennysfabianfalconlainez4932
1 month ago

Menos mal, casi nadie lo hace en python eres grande.!

@danielr2979
1 month ago

Perfecto!!! Voy bien hasta ahora!!!
Ahora a esperar el siguiente video.
Una consulta… cuando sale un cartel ya sea cualquiera, como podes evitar que se mezclen las ventanas?
Por ejemplo: cuando le das a pagar la ventana del menu principal se posiciona adelante y ventas se va para atras, ocurre con cualquier tipo de mensaje ya sea de aviso o error

@sugaralipadillacarrera4626
1 month ago

Excelente!!
Al momento de generar la factura no se le podría colocar un botón que la genere a un PDF.?

@sofiarivera9300
1 month ago

Gracias! Voy haciendo el video contigo, estaba esperando este video, eres muy bueno explicando 🤩