你好,我正在用Python在Flet中做一个CRUD,到目前为止,我的CRUD可以很好地使用添加,现在我想从DataTable中删除数据,但使用IconButton,当按下IconButton时,我从DataTable中删除数据,但我得到这样的消息:类型错误:列表索引必须是整数或切片,而不是str
import flet as ft
from flet import *
def main(page: ft.Page):
codpro = TextField(label="CÓDIGO PRODUCTO")
nompro = TextField(label="NOMBRE PRODUCTO")
#combo de categoria
ddcate = ft.Dropdown(label="CATEGORIA",
width=150,
options=[
ft.dropdown.Option("dulce"),
ft.dropdown.Option("salado"),
],
)
#combo de peso
ddpeso = ft.Dropdown(label="PESO",
width=100,
options=[
ft.dropdown.Option("KG"),
ft.dropdown.Option("G"),
],
)
tablaproducto = DataTable(
#CABECERA DE LAS CALUMNAS
columns=[
DataColumn(Text("CÓDIGO")),
DataColumn(Text("PRODUCTO")),
DataColumn(Text("CATEGORÍA")),
DataColumn(Text("PESO")),
DataColumn(Text("ACCIONES")),
],
#FILAS
rows=[]
)
#FUNCION ELIMINAR
def eliminar(e):
tablaproducto.rows.remove(tablaproducto.rows)
#MENSAJE con Barra inferior
page.snack_bar = SnackBar(
Text("SE ELIMINO DATO", size = 30),
bgcolor = "red"
)
page.snack_bar.open = True
#FIN DEL MENSAJE inferior
page.update()
#FUNCION para AGREGAR
def agregar(e):
tablaproducto.rows.append(
DataRow(
cells=[
DataCell(Text(codpro.value)),
DataCell(Text(nompro.value)),
DataCell(Text(ddcate.value)),
DataCell(Text(ddpeso.value)),
DataCell(
Row([
IconButton("delete",
icon_color ="red",
on_click = eliminar),
])
),
]
)
)
#MENSAJE con Barra inferior
page.snack_bar = SnackBar(
Text("DATO INGRESADO CORRECTAMENTE", size = 30),
bgcolor = "green"
)
page.snack_bar.open = True
#FIN DEL MENSAJE
page.update()
#Boton AGREGAR
BtnAgregar = ElevatedButton(
text="Agregar",
bgcolor="blue",
color="white",
on_click=agregar
)
page.add(
Column([
Text("PRODUCTOS",size=30,weight="bold"),
codpro, nompro,ddcate, ddpeso,
Row([BtnAgregar]),
tablaproducto
])
)
ft.app(target=main)
我正在用Python在Flet中做一个CRUD,到目前为止,我的CRUD可以很好地进行添加,现在我想从DataTable中删除数据,但使用IconButton,当按下IconButton时,我从DataTable中删除数据,但我得到这样的消息:类型错误:列表索引必须是整数或切片,而不是str
1条答案
按热度按时间jhdbpxl91#
我可以用这行代码解决