Skip to content
2 changes: 1 addition & 1 deletion sdk/python/examples/tutorials/todo/step_1.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ def add_clicked(e):
page.add(new_task, FloatingActionButton(icon=Icons.ADD, on_click=add_clicked))


flet.app(target=main)
flet.run(main)
4 changes: 2 additions & 2 deletions sdk/python/examples/tutorials/todo/step_3.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import flet as ft


@ft.control
class TodoApp(ft.Column):
# application's root control is a Column containing all other controls
def __init__(self):
super().__init__()
def init(self):
self.new_task = ft.TextField(hint_text="What needs to be done?", expand=True)
self.tasks_view = ft.Column()
self.width = 600
Expand Down
20 changes: 12 additions & 8 deletions sdk/python/examples/tutorials/todo/step_4.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
from dataclasses import field
from typing import Callable

import flet as ft


@ft.control
class Task(ft.Column):
def __init__(self, task_name, task_delete):
super().__init__()
self.task_name = task_name
self.task_delete = task_delete
task_name: str = ""
on_task_delete: Callable[["Task"], None] = field(default=lambda task: None)

def init(self):
self.display_task = ft.Checkbox(value=False, label=self.task_name)
self.edit_name = ft.TextField(expand=1)

Expand Down Expand Up @@ -61,13 +65,13 @@ def save_clicked(self, e):
self.update()

def delete_clicked(self, e):
self.task_delete(self)
self.on_task_delete(self)


@ft.control
class TodoApp(ft.Column):
# application's root control is a Column containing all other controls
def __init__(self):
super().__init__()
def init(self):
self.new_task = ft.TextField(hint_text="What needs to be done?", expand=True)
self.tasks = ft.Column()
self.width = 600
Expand All @@ -84,7 +88,7 @@ def __init__(self):
]

def add_clicked(self, e):
task = Task(self.new_task.value, self.task_delete)
task = Task(task_name=self.new_task.value, on_task_delete=self.task_delete)
self.tasks.controls.append(task)
self.new_task.value = ""
self.update()
Expand Down
28 changes: 18 additions & 10 deletions sdk/python/examples/tutorials/todo/todo.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
from dataclasses import field
from typing import Callable

import flet as ft


@ft.control
class Task(ft.Column):
def __init__(self, task_name, task_status_change, task_delete):
super().__init__()
task_name: str = ""
on_status_change: Callable[[], None] = field(default=lambda: None)
on_delete: Callable[["Task"], None] = field(default=lambda task: None)

def init(self):
self.completed = False
self.task_name = task_name
self.task_status_change = task_status_change
self.task_delete = task_delete
self.display_task = ft.Checkbox(
value=False, label=self.task_name, on_change=self.status_changed
)
Expand Down Expand Up @@ -66,16 +70,16 @@ def save_clicked(self, e):

def status_changed(self, e):
self.completed = self.display_task.value
self.task_status_change()
self.on_status_change()

def delete_clicked(self, e):
self.task_delete(self)
self.on_delete(self)


@ft.control
class TodoApp(ft.Column):
# application's root control is a Column containing all other controls
def __init__(self):
super().__init__()
def init(self):
self.new_task = ft.TextField(hint_text="Whats needs to be done?", expand=True)
self.tasks = ft.Column()

Expand Down Expand Up @@ -115,7 +119,11 @@ def __init__(self):
]

def add_clicked(self, e):
task = Task(self.new_task.value, self.task_status_change, self.task_delete)
task = Task(
task_name=self.new_task.value,
on_status_change=self.task_status_change,
on_delete=self.task_delete,
)
self.tasks.controls.append(task)
self.new_task.value = ""
self.update()
Expand Down
Loading
Loading