跳到主要内容

容器

概述

容器节点可以实现对子节点元素的自动布局。

节点使用

子节点设置

布局容器的子节点会受容器影响强值改变自身大小,因此使用容器布局前,首先需要设置节点的最小尺寸,否则可能出现布局后子节点大小变为0的情况。

自定义常量

布局容器会自动进行布局,一些布局容器,如水平布局容器盒、中心容器等,会为子节点与子节点、子节点与自身之间留出一定边距,在自定义常量中可以手动修改这些边距,边距可以为负值。不同容器的自定义常量也会不同。

容器类型

容器

容器(Container)是各容器节点的基类,不单独使用。

水平/垂直容器

分为水平容器盒(HBoxContainer)与垂直容器盒(HBoxContainer),可以水平或垂直排列子控件,并在其最小尺寸更改时自动重新排列。

容器盒的自定义常量可以修改容器内各节点之间的间距。

滚动容器

滚动容器(ScrollContainer)节点,用于包含其他UI控件。 滚动容器将在需要时自动创建滚动条子项(水平滚动条垂直滚动条或两者),且仅在滚动容器区域内绘制控件。滚动条将自动绘制在右侧或底部,并允许拖动以在滚动容器内移动可视控件及其子项。

信号

  • scroll_started ( )

滚动开始时发出。

  • scroll_ended ( )

滚动停止时发出。

网格容器

网格容器(GridContainer)将把它的子节点排布在一个类似网格的结构中,网格的列数由”列“属性指定,行的数量会根据列数自动进行计算。例如,网格容器下有5个子节点,列数为2,则行数为3。

自定义常量

网格容器的自定义常量可以修改容器内各节点之间的水平间距和垂直间距。

中心容器

中心容器(CenterContainer)使子节点居中。该容器将所有子节点以最小尺寸保持在容器中心。属性中可以设置让子节点以左上角居中。

标签页容器

标签页容器(TabContainer)将子节点安排在选项卡视图中,大小默认设为铺满标签页。为每个控件都创建一个选项卡,选项卡名称为节点名称。活动选项卡对应的子节点可见,所有其他子节点则被隐藏。

注意

还有一个”标签页“节点,它本身的绘制是由标签页容器进行的,一般不单独使用。无需将标签页节点作为子节点。

自定义常量

标签页容器的自定义常量主要用于调整顶部标签栏相对于左侧的距离

属性

  • 选项卡对齐:顶部选项卡相对于标签页容器对齐的方式

  • 当前选项卡:当前选项卡的索引

  • 选项卡可见:如果 true,选项卡可见。如果 false,选项卡的内容和标题被隐藏

  • All Tabs In Front:如果为 true,所有选项卡都会被绘制在面板之前。如果为 false,未激活的选项卡会被绘制在面板之后

  • 拖动重新排列启用:启用后,可以手动对选项卡进行排序

  • 最小尺寸时隐藏选项卡:如果 true,隐藏的子节点在总数中考虑其最小大小,而不是仅考虑当前可见的一个

信号

  • reposition_active_tab_request ( int idx_to )

通过属性”拖动重新排列启用“开启时,通过鼠标拖动重新排列活动选项卡时发出。

  • right_button_pressed ( int tab )

当选项卡被右键单击时发出。

  • tab_changed ( int tab )

切换到另一个选项卡时发出。

  • tab_clicked ( int tab )

单击选项卡时发出,包括单击的是当前选项卡。

  • tab_close ( int tab )

当选项卡关闭时发出。

  • tab_hover ( int tab )

当鼠标悬停选项卡时发出。

边距容器

边距容器(MarginContainer)可以根据指定边距,自动调整子节点大小。

自定义常量

边距容器的自定义常量可以修改子节点控件矩形的各个边到自身各个边的边距。

水平/垂直拆分容器

分为水平拆分容器(HSplitContainer)和垂直拆分容器(VSplitContainer),可以将两个子节点进行拆分,因此只在仅有两个子节点时正常工作。拆分后,可以通过一个拖动器进行拆分控制。

自定义常量

拆分容器的自定义常量主要用于调整拖动器的大小

属性

  • 分割偏移量:拖动器的初始位置
  • 已折叠:如果为 true,第一个控件的区域将被折叠并且拖动器将被禁用。
  • 拖拽条可见性:确定拖动器的可见性
    • 可见--- 当光标悬停时,拆分拖动器是可见的
    • Hidden --- 拆分拖动器永远不可见
    • Hidden & Collapsed --- 拆分拖动器永远不可见,其空间也被折叠

面板容器

面板容器(PanelContainer)相当于一个带有背景、设有默认边距的边距容器,用于为其他控件快速制作一个轮廓。

视口容器

视口容器(ViewPortContainer)用于放置视口捕获的画面,详情参考视口