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

如何为widget设置自定义宽度,实现表单非均等列占比布局

你可以使用Fyne自带的带权重Grid布局实现需求,你之前遇到Grid均分宽度的问题是因为默认所有列权重相等,只要调整列权重参数即可:

实现逻辑

  • 给checkbox所在的第一列设置权重为0,这一列宽度会自动适配控件本身的最小宽度,保持你要的原有大小
  • 给后面两个输入框所在的列分别设置权重为1,剩余空白空间会按1:1比例分配给这两列,正好各占50%

示例代码

import "fyne.io/fyne/v2/layout"

// 原有三个列容器的定义不需要改动
checks := container.NewVBox(c1, c2)
names := container.NewVBox(n1, n2)
values := container.NewVBox(v1, v2)

// 初始化带权重的Grid布局,第一个参数是行权重(设为nil即可自适应行高),第二个参数是列权重
gridLayout := layout.NewGridLayoutWithWeights(nil, []float32{0, 1, 1})
win := container.New(gridLayout, checks, names, values)

如果你的表单行需要单独控制样式,也可以逐行使用上述带权重的Grid布局,再把所有行放入VBox容器中,对齐效果会更一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 00:18:02