代码之家  ›  专栏  ›  技术社区  ›  trassert

python flet容器

  •  0
  • trassert  · 技术社区  · 10 月前

    我试图用一个容器在传单上制作一份菜单,它应该是半透明的,但里面的项目不是。我试图将不透明度=1分配给元素,但没有成功——它们和容器一样透明

    感谢任何帮助

    我的代码:

    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,
    bgcolor=ft.colors.BLACK,
    border_radius=ft.border_radius.all(15))
    
    1 回复  |  直到 10 月前
        1
  •  0
  •   András Zoller    10 月前

    为什么它不起作用:

    出现问题的原因是,当您设置容器的不透明度时,它会应用于整个容器,包括其内容。在当前代码中,您没有指定任何不透明度,因此容器及其内容是完全不透明的。

    如何修复它:

    要实现所需的容器及其内容,您需要为容器使用opacity属性,并为 TextField 。以下是您应该如何解决此问题:

    import flet as ft
    
    
    nickname = ft.TextField(
        label="xxx",
        hint_text="xxx",
        bgcolor=ft.colors.WHITE,  # Set a solid background color
        border_color=ft.colors.BLACK,
    )
    
    column = ft.Column(
        controls=[nickname],
        alignment=ft.MainAxisAlignment.CENTER,
        horizontal_alignment=ft.CrossAxisAlignment.CENTER,
    )
    
    container = ft.Container(
        content=column,
        padding=10,
        bgcolor=ft.colors.with_opacity(0.5, ft.colors.BLACK),  # Semi-transparent background
        border_radius=ft.border_radius.all(15)
    )
    
    推荐文章
    trassert  ·  python flet容器
    10 月前