You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flet的DataTable中编辑单元格并绑定编辑图标点击事件?

为Flet DataTable的编辑图标绑定点击事件

要给DataCell的编辑图标绑定点击事件,你可以使用DataCell的on_edit_start回调属性,这个回调会在点击编辑图标时触发,并且能接收包含被点击单元格信息的DataCellTapEvent对象。

以下是修改后的完整示例代码:

import flet as ft

def handle_edit_start(e: ft.DataCellTapEvent):
    # 获取被点击的单元格
    cell = e.data_cell
    # 获取单元格内的文本内容
    current_value = cell.control.value
    # 获取所在的行
    row = e.row
    # 这里可以添加你的编辑逻辑,比如弹出输入框修改值
    print(f"开始编辑单元格,当前值:{current_value}")
    print(f"所在行索引:{row.index}")

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=[
                        # 绑定on_edit_start回调
                        ft.DataCell(ft.Text("John"), show_edit_icon=True, on_edit_start=handle_edit_start),
                        ft.DataCell(ft.Text("Smith")),
                    ],
                ),
            ],
        ),
    )

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

关键说明:

  • on_edit_start回调接收的DataCellTapEvent对象包含多个实用属性:
    • data_cell:当前被点击的DataCell实例
    • control:单元格内的子控件(比如示例中的Text组件)
    • row:单元格所在的DataRow实例,可通过row.index获取行索引
    • column:单元格所在的DataColumn实例

你可以在handle_edit_start函数里添加具体的编辑逻辑,比如替换单元格内容为输入框、弹出对话框等。

内容的提问来源于stack exchange,提问作者user936580

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 11:20:39