Curious George sees the world
 
Flet – DataTable

Flet – DataTable

DataTable 元件就是一個表格,用來展現資料時使用,當你有資料需要用表格來顯示時,它將是你最好的選擇:

以下為一個 DataTable 的範例:


# Flet - DataTable
# 2024-08-23
# https://github.com/lcc728/flet/blob/main/ex_datatable.py

import flet as ft

def main(page: ft.Page):
    page.title = "Data Table"
    page.add(
        ft.DataTable(
            width=600,
            bgcolor=ft.colors.CYAN_50, 
            border=ft.border.all(2,"Blue"),
            border_radius=10,
            horizontal_lines=ft.BorderSide(1, "pink"),
            vertical_lines= ft.BorderSide(1, "pink"),
            data_row_color= ft.colors.BLUE_300,
            heading_row_color = ft.colors.YELLOW_100,
            columns=[
                ft.DataColumn(ft.Text("姓名")),
                ft.DataColumn(ft.Text("電話")),
                ft.DataColumn(ft.Text("地址"), numeric=True),
            ],
            rows=[
                ft.DataRow(
                    cells=[
                        ft.DataCell(ft.Text("張三")),
                        ft.DataCell(ft.Text("0912-...-...")),
                        ft.DataCell(ft.Text("台北市...")),
                    ],
                ),
                ft.DataRow(
                    cells=[
                        ft.DataCell(ft.Text("李四")),
                        ft.DataCell(ft.Text("0987-...-...")),
                        ft.DataCell(ft.Text("新北市...")),
                    ],
                ),
                ft.DataRow(
                    cells=[
                        ft.DataCell(ft.Text("王五")),
                        ft.DataCell(ft.Text("0921-...-...")),
                        ft.DataCell(ft.Container(content= ft.Text("台中市..."), alignment=ft.alignment.center)),
                    ],
                ),
            ],
        ),
    )

ft.app(target=main)
  • width : 設定表格的寬度
  • bgcolor: 表格的背景色,在此例中你無法看出效果
  • border: 表格框線的寬度與顏色
  • border_radius: 表格四個角的圓角半徑
  • horizontal_lines:表格水平線的寬度與顏色
  • vertical_lines: 表格垂直線的寬度與顏色
  • data_row_color:表格列的顏色,這個設定會覆蓋 bgcolor 的設定
  • heading_row_color: 表格標題欄(第一列) 的顏色,這個設定會覆蓋 bgcolor 的設定
  • columns : 表格標題欄的內容,每一個格子以 ft.DataColumn 來顯示資料
  • rows: 除了標題欄外的所有表格, 每一列會以 ft.DataRow 來表示,DataRow 含有一個 cell, cell 裡會以 ft.DataCell 來顯示每格的資料

ft.DataCell 並沒有提供 alignment 的屬性,所以最後一格,為了要置中對齊,在 DataCell 中刻意放了一個 container 好實現這個效果

還有許多的屬性我們沒有介紹,請自行參考官網的說明

執行結果:

Flet DataTable 執行結果

SourceCode: https://github.com/lcc728/flet/blob/main/ex_datatable.py

發表迴響