ScrollContainer¶
Inherits: Container < Control < CanvasItem < Node < Object
Inherited By: EditorInspector
A helper node for displaying scrollable elements such as lists.
Description¶
A ScrollContainer node meant to contain a Control child. ScrollContainers will automatically create a scrollbar child (HScrollBar, VScrollBar, or both) when needed and will only draw the Control within the ScrollContainer area. Scrollbars will automatically be drawn at the right (for vertical) or bottom (for horizontal) and will enable dragging to move the viewable Control (and its children) within the ScrollContainer. Scrollbars will also automatically resize the grabber based on the Control.rect_min_size of the Control relative to the ScrollContainer. Works great with a Panel control. You can set EXPAND
on the children's size flags, so they will upscale to the ScrollContainer's size if it's larger (scroll is invisible for the chosen dimension).
Tutorials¶
Properties¶
|
||
rect_clip_content |
|
|
|
||
|
||
|
||
|
||
|
Methods¶
void |
ensure_control_visible ( Control control ) |
get_h_scrollbar ( ) |
|
get_v_scrollbar ( ) |
Theme Properties¶
Signals¶
scroll_ended ( )
Emitted when scrolling stops.
scroll_started ( )
Emitted when scrolling is started.
Property Descriptions¶
bool follow_focus = false
If true
, the ScrollContainer will automatically scroll to focused children (including indirect children) to make sure they are fully visible.
int scroll_deadzone = 0
There is currently no description for this property. Please help us by contributing one!
int scroll_horizontal = 0
The current horizontal scroll value.
Note: If you are setting this value in the Node._ready function or earlier, it needs to be wrapped with Object.set_deferred, since scroll bar's Range.max_value is not initialized yet.
func _ready():
set_deferred("scroll_horizontal", 600)
bool scroll_horizontal_enabled = true
If true
, enables horizontal scrolling.
int scroll_vertical = 0
The current vertical scroll value.
Note: Setting it early needs to be deferred, just like in scroll_horizontal.
func _ready():
set_deferred("scroll_vertical", 600)
bool scroll_vertical_enabled = true
If true
, enables vertical scrolling.
Method Descriptions¶
void ensure_control_visible ( Control control )
Ensures the given control
is visible (must be a direct or indirect child of the ScrollContainer). Used by follow_focus.
Note: This will not work on a node that was just added during the same frame. If you want to scroll to a newly added child, you must wait until the next frame using SceneTree.idle_frame:
add_child(child_node)
yield(get_tree(), "idle_frame")
ensure_control_visible(child_node)
HScrollBar get_h_scrollbar ( )
Returns the horizontal scrollbar HScrollBar of this ScrollContainer.
Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to disable the horizontal scrollbar, use scroll_horizontal_enabled. If you want to only hide it instead, use its CanvasItem.visible property.
VScrollBar get_v_scrollbar ( )
Returns the vertical scrollbar VScrollBar of this ScrollContainer.
Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to disable the vertical scrollbar, use scroll_vertical_enabled. If you want to only hide it instead, use its CanvasItem.visible property.
Theme Property Descriptions¶
StyleBox bg
The background StyleBox of the ScrollContainer.