ScrollContainer

Наследует: Container < Control < CanvasItem < Node < Object

Наследуется от: EditorInspector

Контейнер, используемый для предоставления полос прокрутки дочернему элементу управления при необходимости.

Описание

Контейнер, используемый для предоставления дочернему элементу управления полос прокрутки при необходимости. Полосы прокрутки будут автоматически отрисованы справа (для вертикали) или снизу (для горизонтали) и позволят перетаскивать видимый элемент управления (и его дочерние элементы) в пределах ScrollContainer. Полосы прокрутки также автоматически изменят размер захвата на основе Control.custom_minimum_size элемента управления относительно ScrollContainer.

Обучающие материалы

Свойства

bool

clip_contents

true (overrides Control)

bool

draw_focus_border

false

bool

follow_focus

false

ScrollMode

horizontal_scroll_mode

1

int

scroll_deadzone

0

ScrollHintMode

scroll_hint_mode

0

int

scroll_horizontal

0

float

scroll_horizontal_custom_step

-1.0

int

scroll_vertical

0

float

scroll_vertical_custom_step

-1.0

bool

tile_scroll_hint

false

ScrollMode

vertical_scroll_mode

1

Методы

void

ensure_control_visible(control: Control)

HScrollBar

get_h_scroll_bar()

VScrollBar

get_v_scroll_bar()

Свойства темы

Color

scroll_hint_horizontal_color

Color(0, 0, 0, 1)

Color

scroll_hint_vertical_color

Color(0, 0, 0, 1)

int

scrollbar_h_separation

0

int

scrollbar_v_separation

0

Texture2D

scroll_hint_horizontal

Texture2D

scroll_hint_vertical

StyleBox

focus

StyleBox

panel


Сигналы

scroll_ended() 🔗

Выдается, когда прокрутка останавливается при перетаскивании прокручиваемой области событием касания. Этот сигнал не выдается при прокрутке путем перетаскивания полосы прокрутки, прокрутки колесиком мыши или прокрутки с помощью событий клавиатуры/геймпада.

Примечание: Этот сигнал выдается только на Android или iOS, или на настольных/веб-платформах, когда включен ProjectSettings.input_devices/pointing/emulate_touch_from_mouse.


scroll_started() 🔗

Выдается при начале прокрутки при перетаскивании прокручиваемой области с событием касания. Этот сигнал не выдается при прокрутке путем перетаскивания полосы прокрутки, прокрутки колесиком мыши или прокрутки с помощью событий клавиатуры/геймпада.

Примечание: Этот сигнал выдается только на Android или iOS, или на настольных/веб-платформах, когда включен ProjectSettings.input_devices/pointing/emulate_touch_from_mouse.


Перечисления

enum ScrollMode: 🔗

ScrollMode SCROLL_MODE_DISABLED = 0

Прокрутка отключена, полоса прокрутки будет невидима.

ScrollMode SCROLL_MODE_AUTO = 1

Прокрутка включена, полоса прокрутки будет видна только при необходимости, т. е. если содержимое контейнера больше самого контейнера.

ScrollMode SCROLL_MODE_SHOW_ALWAYS = 2

Прокрутка включена, полоса прокрутки всегда будет видна.

ScrollMode SCROLL_MODE_SHOW_NEVER = 3

Прокрутка включена, полоса прокрутки будет скрыта.

ScrollMode SCROLL_MODE_RESERVE = 4

Объединяет SCROLL_MODE_AUTO и SCROLL_MODE_SHOW_ALWAYS. Полоса прокрутки видна только при необходимости, но размер контента регулируется так, как если бы он был виден всегда. Это полезно для обеспечения того, чтобы размер контента оставался неизменным независимо от того, видна ли полоса прокрутки.


enum ScrollHintMode: 🔗

ScrollHintMode SCROLL_HINT_MODE_DISABLED = 0

Подсказки при прокрутке никогда не будут отображаться.

ScrollHintMode SCROLL_HINT_MODE_ALL = 1

Scroll hints will be shown at the top and bottom (if vertical), or left and right (if horizontal).

ScrollHintMode SCROLL_HINT_MODE_TOP_AND_LEFT = 2

Scroll hints will be shown at the top (if vertical), or the left (if horizontal).

ScrollHintMode SCROLL_HINT_MODE_BOTTOM_AND_RIGHT = 3

Scroll hints will be shown at the bottom (if horizontal), or the right (if horizontal).


Описания свойств

bool draw_focus_border = false 🔗

  • void set_draw_focus_border(value: bool)

  • bool get_draw_focus_border()

Если true, focus отрисовывается, когда ScrollContainer или один из его дочерних узлов находится в фокусе.


bool follow_focus = false 🔗

  • void set_follow_focus(value: bool)

  • bool is_following_focus()

Если true, ScrollContainer автоматически прокрутит до сфокусированных дочерних элементов (включая косвенные дочерние элементы), чтобы убедиться, что они полностью видны.


ScrollMode horizontal_scroll_mode = 1 🔗

Управляет возможностью использования горизонтальной полосы прокрутки и тем, когда она должна быть видна.


int scroll_deadzone = 0 🔗

  • void set_deadzone(value: int)

  • int get_deadzone()

Мертвая зона для сенсорной прокрутки. Меньшая мертвая зона делает прокрутку более чувствительной.


ScrollHintMode scroll_hint_mode = 0 🔗

The way which scroll hints (indicators that show that the content can still be scrolled in a certain direction) will be shown.

Note: Hints won't be shown if the content can be scrolled both vertically and horizontally.


int scroll_horizontal = 0 🔗

  • void set_h_scroll(value: int)

  • int get_h_scroll()

Текущее значение горизонтальной прокрутки.

Примечание: Если вы устанавливаете это значение в функции Node._ready() или более ранней, его необходимо обернуть в Object.set_deferred(), поскольку Range.max_value полосы прокрутки еще не инициализирован.

func _ready():
    set_deferred("scroll_horizontal", 600)

float scroll_horizontal_custom_step = -1.0 🔗

  • void set_horizontal_custom_step(value: float)

  • float get_horizontal_custom_step()

Переопределяет ScrollBar.custom_step, используемый при нажатии кнопок горизонтального увеличения и уменьшения внутренней полосы прокрутки или при использовании клавиш со стрелками, когда ScrollBar находится в фокусе.


int scroll_vertical = 0 🔗

  • void set_v_scroll(value: int)

  • int get_v_scroll()

Текущее значение вертикальной прокрутки.

Примечание: Раннюю установку необходимо отложить, как и в scroll_horizontal.

func _ready():
    set_deferred("scroll_vertical", 600)

float scroll_vertical_custom_step = -1.0 🔗

  • void set_vertical_custom_step(value: float)

  • float get_vertical_custom_step()

Переопределяет ScrollBar.custom_step, используемый при нажатии кнопок вертикального увеличения и уменьшения внутренней полосы прокрутки или при использовании клавиш со стрелками, когда ScrollBar находится в фокусе.


bool tile_scroll_hint = false 🔗

  • void set_tile_scroll_hint(value: bool)

  • bool is_scroll_hint_tiled()

Если true, текстура подсказки прокрутки будет мозаичной, а не растянутой. См. scroll_hint_mode.


ScrollMode vertical_scroll_mode = 1 🔗

Управляет возможностью использования вертикальной полосы прокрутки и тем, когда она должна быть видна.


Описания метода

void ensure_control_visible(control: Control) 🔗

Гарантирует, что заданный control виден (должен быть прямым или косвенным дочерним элементом ScrollContainer). Используется follow_focus.

Примечание: Это не будет работать на узле, который был только что добавлен в том же кадре. Если вы хотите прокрутить до недавно добавленного дочернего элемента, вы должны дождаться следующего кадра, используя SceneTree.process_frame:

add_child(child_node)
await get_tree().process_frame
ensure_control_visible(child_node)

HScrollBar get_h_scroll_bar() 🔗

Возвращает горизонтальную полосу прокрутки HScrollBar этого ScrollContainer.

Предупреждение: Это обязательный внутренний узел, его удаление и освобождение может привести к сбою. Если вы хотите отключить или скрыть полосу прокрутки, вы можете использовать horizontal_scroll_mode.


VScrollBar get_v_scroll_bar() 🔗

Возвращает вертикальную полосу прокрутки VScrollBar этого ScrollContainer.

Предупреждение: Это обязательный внутренний узел, его удаление и освобождение может привести к сбою. Если вы хотите отключить или скрыть полосу прокрутки, вы можете использовать vertical_scroll_mode.


Описания свойств темы

Color scroll_hint_horizontal_color = Color(0, 0, 0, 1) 🔗

Color used to modulate the scroll_hint_horizontal texture.


Color scroll_hint_vertical_color = Color(0, 0, 0, 1) 🔗

Color used to modulate the scroll_hint_vertical texture.


int scrollbar_h_separation = 0 🔗

The space between the ScrollContainer's vertical scroll bar and its content, in pixels. No space will be added when the content's minimum size is larger than the ScrollContainer's size.


int scrollbar_v_separation = 0 🔗

The space between the ScrollContainer's horizontal scroll bar and its content, in pixels. No space will be added when the content's minimum size is larger than the ScrollContainer's size.


Texture2D scroll_hint_horizontal 🔗

The indicator that will be shown when the content can still be scrolled horizontally. See scroll_hint_mode.


Texture2D scroll_hint_vertical 🔗

The indicator that will be shown when the content can still be scrolled vertically. See scroll_hint_mode.


StyleBox focus 🔗

Граница фокуса StyleBox ScrollContainer. Используется только если draw_focus_border равен true.


StyleBox panel 🔗

Фон StyleBox ScrollContainer.