如何在Godot中自动调整Label节点大小?按钮内字体适配求助
Godot按钮内Label文本垂直最大化及子节点等比例布局解决方案
第一步:确保三个子节点保持1:1:1比例
- 选中
VBoxContainer,在检查器中开启自定义大小(Custom Minimum Size),按需设置最小宽高。 - 分别选中两个
TextureRect和Label,在Size Flags面板中,将三者的Stretch Ratio都设为1。VBoxContainer会自动将垂直空间平均分配,实现1:1:1的高度比例。 - 给
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
相关产品推荐
相关产品推荐

