lista de compras con flet

Описание к видео lista de compras con flet

nolesemucho

import flet as ft # importa flet un frameword

def main(page: ft.Page): #define o estructura el tipo, en este caso es una pagina
page.title = "Lista de Compras"#titulo de la ventana
page.window_width = 600#ancho definico de la pagina
page.window_height = 600#alto definido de la vnetana
product_name = ft.TextField(label="Nombre del Producto", width=200)#una etiqueta o label con el nombre del producto con una caja de un acnho de 200px
quantity = ft.TextField(label="Cantidad", width=100)#una etiqueta o label con la cantidad
unit_price = ft.TextField(label="Precio Unitario", width=150)#label con el precio unitario
data_table = ft.DataTable(#guarda y ordena los label deforma en que se vayan poniendo en este caso horizontal
columns=[
ft.DataColumn(ft.Text("Producto")),
ft.DataColumn(ft.Text("Cantidad")),
ft.DataColumn(ft.Text("Precio Unitario")),
ft.DataColumn(ft.Text("Subtotal")),
],
rows=[]
)
total = ft.Text(value="Total: $0.00", size=20, weight=ft.FontWeight.BOLD)
total_amount = 0.0
def add_product(e):
nonlocal total_amount
try:
qty = int(quantity.value)
price = float(unit_price.value)
subtotal = qty * price
total_amount += subtotal
data_table.rows.append(
ft.DataRow(
cells=[
ft.DataCell(ft.Text(product_name.value)),
ft.DataCell(ft.Text(str(qty))),
ft.DataCell(ft.Text(f"${price:.2f}")),
ft.DataCell(ft.Text(f"${subtotal:.2f}")),
]
)
)
total.value = f"Total: ${total_amount:.2f}"
#resetea
product_name.value = ""
quantity.value = ""
unit_price.value = ""
page.update()
except ValueError:
mensaje de error, este es necesario, al no ponerlo el codigo no sirve
pass
add_button = ft.ElevatedButton("Agregar", on_click=add_product)
page.add(
ft.Row([product_name, quantity, unit_price, add_button]),
data_table,
total
)
def show_ticket(e):
ticket_content = "----- Ticket de Compra -----\n"
for row in data_table.rows:
product = row.cells[0].content.value
qty = row.cells[1].content.value
price = row.cells[2].content.value
subtotal = row.cells[3].content.value
ticket_content += f"{product} x{qty} -- {price} = {subtotal} \n"
ticket_content += f"\nTotal: ${total_amount:.2f}"
page.dialog = ft.AlertDialog(title=ft.Text("Ticket de Compra"), content=ft.Text(ticket_content))
page.dialog.open = True
page.update()
ticket_button = ft.ElevatedButton("Ver Ticket", on_click=show_ticket)
page.add(ticket_button)
ft.app(target=main)

Комментарии

Информация по комментариям в разработке