如何在Flet中实现窗口/页面尺寸变化时自动调整控件宽度?
实现Flet中Container随窗口尺寸自动适配的方法
你当前的代码只在初始化时获取了一次页面的宽高,窗口尺寸变化后这些值不会自动更新,所以Container大小不会跟着变。这里有两种简单的解决方法:
方法一:使用expand属性(推荐)
Flet的控件自带expand参数,设置为True后会自动填充父容器的可用空间,无需手动设置宽高:
container = ft.Container(content=ft.Text("this is a container"), expand=True)
添加这个控件到页面后,它会自动占满整个页面,窗口拖动改变尺寸时会实时适配。
方法二:监听页面尺寸变化事件手动更新
如果需要更灵活的控制,可以给页面绑定resize事件监听器,在尺寸变化时手动更新Container的宽高:
def on_page_resize(e): # 更新Container的宽高为当前页面的尺寸 container.width = e.page.width container.height = e.page.height # 刷新控件 container.update() # 初始化Container container = ft.Container(content=ft.Text("this is a container"), width=page.width, height=page.height) # 绑定resize事件 page.on_resize = on_page_resize # 添加控件到页面 page.add(container)
内容的提问来源于stack exchange,提问作者easonoob
相关产品推荐
相关产品推荐

