Python Flet 有父级展开,但子级不应该

问题描述 投票:0回答:1

我使用 Flet 作为我的项目的 GUI 库。我有以下代码:

MAIN_GUI = ft.Container(
    margin=ft.margin.only(bottom=40),
    expand=True,
    content=ft.Row([
        ft.Card(
            elevation=30,
            expand=4,
            content=ft.Container(
                content=ft.Column([
                    ft.Text("LEFT SIDE, 1st row", size=30, weight=ft.FontWeight.BOLD),
                    ft.Text("LEFT SIDE 2nd row", size=30, weight=ft.FontWeight.NORMAL)
                ]),
                border_radius=ft.border_radius.all(20),
                bgcolor=ft.colors.WHITE24,
                padding=45,
            )
        ),
        ft.Tabs(
            selected_index=0,
            animation_duration=300,
            expand=3,
            tabs=[
                ft.Tab(
                    text="Tab 1",
                    icon=ft.icons.SEARCH,
                    content=ft.Container(
                        content=ft.Card(
                            elevation=30,
                            content=ft.Container(
                                content=ft.Text("Amazing TAB 1 content", size=50, weight=ft.FontWeight.BOLD),
                                border_radius=ft.border_radius.all(20),
                                bgcolor=ft.colors.WHITE24,
                                padding=45,
                            )
                        )
                    ),
                ),
                ft.Tab(
                    text="Tab 2",
                    icon=ft.icons.SETTINGS,
                    content=ft.Text("Amazing TAB 2 content"),
                ),
            ],
        )
    ])
)

def main(page: ft.Page):
    page.padding = 50
    page.add(MAIN_GUI)
    page.update()


if __name__ == '__main__':
    ft.app(target=main)

这将创建一个窗口,该窗口分为左右部分,其中左侧部分有一个

ft.Card
,右侧部分有 2 个选项卡,其中一个选项卡也有一个
ft.Card

这些 Flet 的小部件必须具有

expand=True
才能使
ft.Tabs
正常工作,但是,我希望子部件,特别是
ft.Card
小部件不展开
,相反,它们的宽度和高度应该根据里面的内容进行变换。

python flutter user-interface expand flet
1个回答
0
投票

使用

Container
代替
Column

...
ft.Tab(
    text="Tab 1",
    icon=ft.icons.SEARCH,
    content=ft.Column(
        controls=[
            ft.Card(
                elevation=30,
                content=ft.Container(
                    content=ft.Text("Amazing TAB 1 content", size=50, weight=ft.FontWeight.BOLD),
                    border_radius=ft.border_radius.all(20),
                    bgcolor=ft.colors.WHITE24,
                    padding=45,
                )
            )
        ]
    ),
)
...

插入

Column
作为
Tab
的基本控件后,您现在可以在其 '
controls
属性中添加任何其他控件,您会发现问题已解决。

© www.soinside.com 2019 - 2024. All rights reserved.