You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flet中Container半透明设置问题:子元素透明度无法独立调整求助

Flet容器半透明但子元素不透明的解决方法

在Flet中,如果你直接给Container设置opacity属性,容器内的所有子元素会继承这个透明度,所以单独给子元素设置opacity=1不会生效。正确的做法是给容器的背景色添加透明度,而非使用容器的opacity参数。

修改你的代码,将bgcolor改为带透明度的颜色值即可:

import flet as ft

def main(page: ft.Page):
    nickname = ft.TextField(
        label="xxx",
        hint_text="xxx"
    )
    column = ft.Column(
        controls=[nickname],
        alignment=ft.MainAxisAlignment.CENTER,
        horizontal_alignment=ft.CrossAxisAlignment.CENTER,
    )
    container = ft.Container(
        content=column,
        padding=10,
        # 使用with_opacity给背景色添加透明度,第一个参数是透明度(0-1),第二个是基础颜色
        bgcolor=ft.colors.with_opacity(0.5, ft.colors.BLACK),
        border_radius=ft.border_radius.all(15)
    )
    page.add(container)

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

这样设置后,容器背景是半透明的黑色,而内部的TextField会保持完全不透明的状态。你可以调整with_opacity的第一个参数(0到1之间)来改变背景的透明程度。

内容的提问来源于stack exchange,提问作者trassert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 14:04:53