SplitContainer

继承: Container < Control < Item < Object

派生: HSplitContainer, VSplitContainer

水平或垂直拆分两个子控件的容器,并提供用于调整拆分比例的抓取器。

描述

只接受两个子控件的容器,然后水平或垂直排列它们并在它们之间创建除数。可以拖动除数来更改子控件之间的大小关系。

属性

方法

主题属性


信号

drag_ended() 🔗

当用户结束拖动时发出。


drag_started() 🔗

当用户开始拖动时发出。


dragged(offset: int) 🔗

当用户拖动拖动器时发出。


枚举

enum DraggerVisibility: 🔗

DraggerVisibility DRAGGER_VISIBLE = 0

autohidefalse时,拆分拖动器图标始终可见,否则仅在光标悬停时可见。

抓取图标的大小决定最小separation

如果抓取器图标的长度长于分割条,则拖动器图标会自动隐藏。

DraggerVisibility DRAGGER_HIDDEN = 1

无论autohide的值如何,拆分拖动图标都永远不可见。

抓取图标的大小决定最小separation

DraggerVisibility DRAGGER_HIDDEN_COLLAPSED = 2

拆分拖动图标不可见,拆分条折叠为零厚度。


属性说明

bool collapsed = false 🔗

  • void set_collapsed(value: bool)

  • bool is_collapsed()

如果true,拖动器将被禁用,并且子级的大小将被设置为split_offset0


bool drag_area_highlight_in_editor = false 🔗

  • void set_drag_area_highlight_in_editor(value: bool)

  • bool is_drag_area_highlight_in_editor_enabled()

突出显示拖动区域Rect2,以便您在开发过程中看到它的位置。如果dragging_enabledtrue,拖动区域为金色,如果false,拖动区域为红色。


int drag_area_margin_begin = 0 🔗

  • void set_drag_area_margin_begin(value: int)

  • int get_drag_area_margin_begin()

减小容器开头的拖动区域和分割条split_bar_background的大小。


int drag_area_margin_end = 0 🔗

  • void set_drag_area_margin_end(value: int)

  • int get_drag_area_margin_end()

减小拖动区域和容器末端的分割条split_bar_background的大小。


int drag_area_offset = 0 🔗

  • void set_drag_area_offset(value: int)

  • int get_drag_area_offset()

移动容器轴中的拖动区域,以防止拖动区域与子节点的ScrollBar或其他可选Control重叠。


DraggerVisibility dragger_visibility = 0 🔗

确定拖动器的可见性。有关详细信息,请参阅DraggerVisibility。此属性不确定是否启用拖动。为此使用dragging_enabled


bool dragging_enabled = true 🔗

  • void set_dragging_enabled(value: bool)

  • bool is_dragging_enabled()

启用或禁用拆分拖动。


int split_offset = 0 🔗

  • void set_split_offset(value: int)

  • int get_split_offset()

两个Control之间拆分的初始偏移量,0位于第一个Control的末尾。


bool vertical = false 🔗

  • void set_vertical(value: bool)

  • bool is_vertical()

如果trueSplitContainer将垂直排列其子级,而不是水平排列。

使用HSplitContainerVSplitContainer时无法更改。


方法说明

void clamp_split_offset() 🔗

split_offset值限制为不超出当前可能的最小值和最大值。


Control get_drag_area_control() 🔗

返回拖动区域 Control。例如,你可以将一个预先配置好的按钮移动到拖动区域 Control 中,以便它随拆分条一起移动。尝试在调用 reparent() 之前将 Button 的锚点设置为 center

$BarnacleButton.reparent($SplitContainer.get_drag_area_control())

注意:拖动区域Control绘制在SplitContainer的子节点之上,因此如果需要阻止鼠标拖动,请尝试将自定义子节点的Control.mouse_filter设置为 Control.MOUSE_FILTER_IGNORE警告:这是一个必需的内部节点,移除或释放它都可能会导致崩溃。


主题属性说明

int autohide = 1 🔗

布尔值。如果1true),抓取器将在它不在光标下时自动隐藏。如果0false),它总是可见的。dragger_visibility必须是DRAGGER_VISIBLE


int minimum_grab_thickness = 6 🔗

用户可以点击抓取分割条的区域的最小厚度。这确保了如果separationh_grabber/v_grabber的尺寸太窄而无法轻松选择,分割条仍然可以被拖动。


int separation = 12 🔗

分割条厚度,即容器的两个孩子之间的间隙。如果dragger_visibility设置为DRAGGER_VISIBLEDRAGGER_HIDDEN,并且separation小于同一轴上抓取图标的大小,则这将被抓取图标的大小覆盖。

注意:要获得小于抓取器图标大小的separation值,例如1 px发际线,将h_grabberv_grabber设置为新的ImageTexture,这有效地将抓取器图标大小设置为0 px


Texture2D grabber 🔗

用于在中间区域绘制的抓取器的图标。


Texture2D h_grabber 🔗

vertical时用于在中间区域绘制的抓取器的图标为false


Texture2D v_grabber 🔗

vertical时用于在中间区域绘制的抓取器的图标为true


StyleBox split_bar_background 🔗

如果分割条的厚度大于零,则确定其背景。