Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ошибка в flet python

YarinMinecraft YT Ученик (163), на голосовании 3 недели назад
Добрый день, я тут писал код на flet и столкнулся с такой ошибкой:

Код:

 import time 

import flet as ft

def main(page: ft.Page):
# add/update controls on Page
page.title = "Test"
def destroy_check(objs):
for val in objs:
page.remove(val)
page.update()
def add_clicked(e):
if new_task.value == "" or new_task.value == " ":
page.open(dlg)
else:
chckb = ft.Checkbox(label=new_task.value)
cl = ft.FilledButton(text="Delete", on_click=lambda s: destroy_check([chckb, cl]))
page.add(ft.Row([chckb, cl]))
new_task.value = ""
new_task.focus()
new_task.update()

def close_dialog(e):
page.close(dlg)

new_task = ft.TextField(hint_text="Задача", label="Поле 1")
dlg = ft.AlertDialog(title=ft.Text("Поле не может быть пустым"), modal=True,
actions=[ft.TextButton("Ok", on_click=close_dialog)])
page.add(ft.Row([new_task, ft.ElevatedButton("Добавить", on_click=add_clicked)]))


ft.app(target=main, port=5562, host="0.0.0.0")

Ошибка:

 Future exception was never retrieved 
future: <Future finished exception=ValueError('list.remove(x): x not in list')>
Traceback (most recent call last):
File "C:\Users\Yaros\AppData\Local\Programs\Python\Python310\lib\concurrent\futures\thread.py", line 52, in run
result = self.fn(*self.args, **self.kwargs)
File "C:\Users\Yaros\PycharmProjects\FletExample\.venv\lib\site-packages\flet_core\page.py", line 944, in wrapper
handler(*args)
File "C:\Users\Yaros\PycharmProjects\FletExample\main.py", line 17, in <lambda>
cl = ft.FilledButton(text="Delete", on_click=lambda s: destroy_check([chckb, cl]))
File "C:\Users\Yaros\PycharmProjects\FletExample\main.py", line 10, in destroy_check
page.remove(val)
File "C:\Users\Yaros\PycharmProjects\FletExample\.venv\lib\site-packages\flet_core\page.py", line 766, in remove
self._controls.remove(control)
ValueError: list.remove(x): x not in list
Голосование за лучший ответ
GGG Просветленный (37487) 1 месяц назад
 import flet as ft 

def main(page: ft.Page):
page.title = "Test"

def destroy_check(row):
page.remove(row)
page.update()

def add_clicked(e):
task_text = new_task.value.strip()
if not task_text:
page.dialog = dlg
page.update()
else:
chckb = ft.Checkbox(label=task_text)
# Создаем Row и добавляем в него Checkbox и кнопку Delete
row = ft.Row()
cl = ft.FilledButton(text="Delete", on_click=lambda _: destroy_check(row))
row.controls = [chckb, cl]
page.add(row)
new_task.value = ""
new_task.focus()
page.update()

def close_dialog(e):
page.dialog = None
page.update()

new_task = ft.TextField(hint_text="Задача", label="Поле 1")
dlg = ft.AlertDialog(
title=ft.Text("Поле не может быть пустым"),
modal=True,
actions=[ft.TextButton("Ok", on_click=close_dialog)]
)
page.add(ft.Row([new_task, ft.ElevatedButton("Добавить", on_click=add_clicked)]))

ft.app(target=main, port=5562, host="0.0.0.0")
YarinMinecraft YTУченик (163) 1 месяц назад
GG Me
Похожие вопросы