Flet 布局控件:ft.Stack(栈)一个将其子控件堆叠在一起的控件
ft.Stack(栈)堆叠控件将子元素堆叠在一起。这个控件很有用,如果你想以简单的方式重叠多个子元素,例如有一些文本和一张图片,叠加一个渐变色,并在底部附加一个按钮。
一、基本用法
示例代码如下:
import flet as ft
def example():
st = ft.Stack(
[
ft.Image(
src="https://scpic.chinaz.net/files/default/imgs/2023-06-23/2910171d2c81b140.jpg",
width=650,
height=415,
fit=ft.ImageFit.CONTAIN,
),
ft.Row(
[
ft.Text(
"夏日荷塘古风古韵古典美女写真",
color="blue",
size=30,
weight="bold",
opacity=0.5,
)
],
alignment=ft.MainAxisAlignment.CENTER,
),
],
width=650,
height=415,
)
return st
def main(page:ft.Page):
page.title = "Flet 布局控件:ft.Stack(栈)"
page.window.width = 650
page.window.height = 415
page.window.center()
page.padding = 0
page.add(example())
ft.app(target=main)示例代码如下:
import flet as ft
def example():
st = ft.Stack(
[
ft.CircleAvatar(
foreground_image_url="https://scpic.chinaz.net/files/default/imgs/2023-02-15/feab76c0c82acbc9_s.jpg",
width=60,
height=60
),
ft.Container(
content=ft.CircleAvatar(bgcolor=ft.Colors.GREEN, radius=5),
alignment=ft.alignment.bottom_left,
width=50,
height=50
),
],
)
return st
def main(page:ft.Page):
page.title = "Flet 布局控件:ft.Stack(栈)2"
page.window.width = 650
page.window.height = 415
page.window.center()
page.padding = 10
page.add(example())
ft.app(target=main)二、属性
alignment
非定位控件(那些在特定轴上既不指定顶部也不指定底部的控件)的对齐方式。
clip_behavior
内容将根据此选项被裁剪(或不被裁剪)。属性值是 ClipBehavior ,默认为 HARD_EDGE。
controls
要在 Stack 中显示的控件列表。列表中的最后一个控件将被显示在顶部。
fit
非定位控件的大小方式。值是 StackFit ,它有以下可能的值:
- EXPAND - 从父控件传递给 Stack 的约束将被紧缩到允许的最大大小。例如,如果 Stack 有 loose 约束,宽度在 10 到 100 之间,高度在 0 到 600 之间,那么非定位控件将被大小为 100 像素宽和 600 高。
- PASS_THROUGH - 从父控件传递给 Stack 的约束将被传递给非定位控件,不进行修改。例如,如果一个扩展的 Stack 是 Row 的子控件,那么水平约束将被紧缩,垂直约束将被松散。
- LOOSE(默认) - 从父控件传递给 Stack 的约束将被松散。例如,如果 Stack 有约束强制它为 350x600,那么这将允许非定位控件有任何宽度从 0 到 350 和任何高度从 0 到 600。
(汇报完毕,感谢收看!收藏+点赞)