辞書で定義したデータをもとに flet の ElevatedButton を作成するコード
辞書で定義したデータをもとに、flet の ElevatedButton を作成するコードのサンプル
辞書のキーを ElevatedButton のボタンに表示される文字列にしている。 辞書の値は、ElevatedButton の data として定義しておき、event 用の関数で e.control.data と形で受け取っている。
import flet as ft def main(page: ft.Page): def button_click(e): column.controls.clear() column.controls.append(ft.Text("data:" + e.control.data)) page.update() # 定数設定 BUTTON_COLOR = ft.colors.TEAL_ACCENT_100 BGCOLOR = ft.colors.TEAL_500 # page setting page.title = "button example" page.window.width = 220 page.window.height = 220 page.window.title_bar_hidden = False page.window.frameless = False page.scroll = ft.ScrollMode.ALWAYS page.bgcolor = BGCOLOR # ボタンに格納するデータ button_data = { "minamotono": "yoritomo", "minamotono": "yoshitune", "坂本 ": "ryoma", "西郷 ": "takamori", "桂 ": "小五郎", "tokugawa": "ieyasu", "sugawarano": "michizane", "mouri": "motonari", "oda": "nobunaga", } # ボタンデータの読み込みとボタン情報の生成 column_items = [] for key in button_data: column_items.append( ft.Row([ ft.ElevatedButton( key, data=button_data[key], height=30, width=150, style=ft.ButtonStyle( shape=ft.RoundedRectangleBorder(radius=10) ), bgcolor=BUTTON_COLOR, on_click=button_click) ]) ) # ボタンをコンテナに登録 container = ft.Container( content=ft.Column(column_items), bgcolor=BGCOLOR, padding=10, adaptive=True ) # これはなくてもよい。ボタンを押した時の検証用に作成 column = ft.Column() # コントロールをページ追加 page.add( ft.Row([container]), ft.Row([column]) ) # ft 処理開始 ft.app(target=main)