todo.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import flet as ft
  2. from flet_core import Column, MainAxisAlignment
  3. class TodoPage(Column):
  4. ''' todo page '''
  5. def add_clicked(self, e):
  6. '''增加点击事件'''
  7. if self.new_task.value:
  8. self.list.controls.append(ft.Checkbox(label=self.new_task.value))
  9. self.new_task.value = ""
  10. self.new_task.focus()
  11. self.new_task.update()
  12. self.page.update()
  13. # self.page.update()
  14. else:
  15. self.page.dialog = self.dlg
  16. self.dlg.open = True
  17. self.page.update()
  18. def __init__(self):
  19. super().__init__()
  20. self.controls.clear()
  21. self.dlg = ft.AlertDialog(title=ft.Text("请输入内容!"), on_dismiss=lambda e: print("关闭提示!"))
  22. self.new_task = ft.TextField(hint_text="添加想要干的事情", width=300,on_submit=self.add_clicked)
  23. # self.add_btn = ft.IconButton(ft.icons.ADD, tooltip="添加", icon_color=ft.colors.BLACK87,
  24. self.add_btn = ft.FloatingActionButton(icon=ft.icons.ADD, bgcolor=ft.colors.LIME_300, on_click=self.add_clicked)
  25. # // ft.ElevatedButton("Add", on_click=self.add_clicked)
  26. self.list = ft.Column(alignment=ft.alignment.top_left)
  27. self.list.controls.append(ft.Checkbox(label='Java'))
  28. self.list.controls.append(ft.Checkbox(label='Python'))
  29. self.list.controls.append(ft.Checkbox(label='AI'))
  30. self.list.controls.append(ft.Checkbox(label='开源项目计划'))
  31. content = ft.Column([
  32. ft.Row(controls=[self.new_task, self.add_btn]),
  33. self.list
  34. ])
  35. self.controls.append(content)