【Flet】テーブルデータの行をクリックした時のイベント処理

前回のテーブルデータを表示するサンプルコードを作成しましたが、
各行がクリックされた時にイベントが発火するようにしてみます。
これはft.DataRowon_select_changedを使います。

さっそくサンプルコードを示します。
単純にクリックした行を標準出力します。

import flet as ft


def my_row(text1, num):
    return ft.DataRow(
        cells=[
            ft.DataCell(ft.Text(text1)),
            ft.DataCell(ft.Text(num)),
        ],
        # 以下を追加
        on_select_changed=lambda e: print(
            e.control.cells[0].content.value, e.control.cells[1].content.value
        ),
    )


def main(page: ft.Page):
    page.add(
        ft.DataTable(
            columns=[
                ft.DataColumn(ft.Text("Text1")),
                ft.DataColumn(ft.Text("Num"), numeric=True),
            ],
            rows=[
                my_row("test1", 1),
                my_row("test2", 2),
                my_row("test3", 3),
            ],
        ),
    )


ft.app(target=main)

コメント

タイトルとURLをコピーしました