python 如何编辑flet的DataTable中的单元格?

92vpleto  于 2022-12-10  发布在  Python
关注(0)|答案(1)|浏览(367)

Flet的DataTable有一个show_edit_icon属性,但我不知道按下图标时如何执行操作。
这是一个示例代码:

import flet as ft

def main(page: ft.Page):
    page.add(
        ft.DataTable(
            columns=[
                ft.DataColumn(ft.Text("First name")),
                ft.DataColumn(ft.Text("Last name")),
            ],
            rows=[
                ft.DataRow(
                    cells=[
                        ft.DataCell(ft.Text("John"), show_edit_icon=True),
                        ft.DataCell(ft.Text("Smith")),
                    ],
                ),
            ],
        ),
    )

ft.app(target=main, view=ft.WEB_BROWSER)

我看到了编辑图标,但如何将它连接到接收正在编辑的单元格的某个函数?

kmbjn2e3

kmbjn2e31#

根据文档说明,在FLET数据表中,show_edit_icon这将使您只能看到单元格的图标。尽管如此,您必须创建一个新函数,并将其连接到on_tap功能上的单元格。

备注

  • 将属性on_tap添加到单元格
  • 实现新功能
  • 在新功能内部更改后更新页面
import flet as ft

 def main(page: ft.Page):
     # this is the function that controls the value of the cell 
     # returns value on tap
     def updateOnTap(e):
       e.control.content.value = "Hello John"
       page.update()

     page.add(
         ft.DataTable(
             columns=[
                 ft.DataColumn(ft.Text("First name")),
                 ft.DataColumn(ft.Text("Last name")),
             ],
             rows=[
                 ft.DataRow(
                     cells=[
                         ft.DataCell(ft.Text("John"), show_edit_icon=True, on_tap=updateOnTap),
                         ft.DataCell(ft.Text("Smith")),
                     ],
                 ),
             ],
         ),
     )

 ft.app(target=main, view=ft.WEB_BROWSER)

相关问题