見出し画像

flet のタブによるページ切り替え

やりたいこと

下記の画像のような感じでタブを切り替えによって、アプリの画面を変更したい

main.py (アプリの実行ファイル)

import flet as ft
from Stock import Stock
    
if __name__ == "__main__":
    def main(page: ft.Page):
        page.title = "test"
        page.horizontal_alignment = ft.CrossAxisAlignment.CENTER
        
        t = ft.Tabs(
            selected_index=0,#選択しているタブ 
            animation_duration=200, #移動速度 
            tabs=[
                ft.Tab(
                    text="タイトル1",
                    content=ft.Container(
                        content=Stock()
                    ),
                ),
                ft.Tab(
                    text="タイトル2",
                    icon=ft.icons.SEARCH,
                    content=ft.Text("This is Tab 2"),
                ),
                ft.Tab(
                    text="タイトル3",
                    icon=ft.icons.SETTINGS,
                    content=ft.Text("This is Tab 3"),
                    ),
                ],
                unselected_label_color=ft.colors.GREY_400, #非表示のタブ色 
                expand=1,
                overlay_color=ft.colors.AMBER_300, #洗濯中のタブ色 
            )
        
        page.add(t)
        page.update()


    ft.app(target=main)

stock.py (Tab 1 の表示内容)

import flet as ft

class Stock(ft.UserControl):
    def __init__(self):
        super().__init__()

    def build(self):
        container = ft.Container


        return ft.Text("テスト")

タブの表示内容はft.tab(content=)に記載するので、別の.pyファイルクラスを作ってimport する。
タブの表示内容がファイル毎に別れるのでコードを見直す時確認しやすい。

この記事が気に入ったらサポートをしてみませんか?