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

如何在Godot中自动调整Label节点大小?按钮内字体适配求助

Godot按钮内Label文本垂直最大化及子节点等比例布局解决方案

第一步:确保三个子节点保持1:1:1比例

  1. 选中VBoxContainer,在检查器中开启自定义大小(Custom Minimum Size),按需设置最小宽高。
  2. 分别选中两个TextureRect和Label,在Size Flags面板中,将三者的Stretch Ratio都设为1。VBoxContainer会自动将垂直空间平均分配,实现1:1:1的高度比例。
  3. 给TextureRect设置Scale Mode为Keep Aspect Ratio,避免图片拉伸变形。

第二步:让Label文本垂直方向最大化

用脚本动态调整是最可靠的方式,给Label节点附加如下脚本:

extends Label

func _ready():
    adjust_font_size()
    connect("resized", self, "_on_resized")

func _on_resized():
    adjust_font_size()

func adjust_font_size():
    # 计算Label可用垂直空间(扣除内边距)
    var stylebox = get_stylebox("normal")
    var usable_height = rect_size.y - stylebox.content_margin_top - stylebox.content_margin_bottom
    
    # 取可用高度的90%作为字体大小(预留空间避免溢出,可按需调整比例)
    var target_size = usable_height * 0.9
    # 覆盖主题字体大小(直接修改font_size可能被主题样式覆盖)
    add_theme_font_size_override("font_size", target_size)
    
    # 强制刷新布局
    queue_redraw()

额外注意事项

  • 选中父节点Button,开启Clip Content,防止文本超出按钮边界。
  • 若Label有水平宽度限制,开启Autowrap避免横向溢出。
  • 调整Button大小测试,确认子节点比例和文本适配效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 02:27:42