ScrollContainer
Наследует: Container < Control < CanvasItem < Node < Object
Наследуется от: EditorInspector
Контейнер, используемый для предоставления полос прокрутки дочернему элементу управления при необходимости.
Описание
Контейнер, используемый для предоставления дочернему элементу управления полос прокрутки при необходимости. Полосы прокрутки будут автоматически отрисованы справа (для вертикали) или снизу (для горизонтали) и позволят перетаскивать видимый элемент управления (и его дочерние элементы) в пределах ScrollContainer. Полосы прокрутки также автоматически изменят размер захвата на основе Control.custom_minimum_size элемента управления относительно ScrollContainer.
Обучающие материалы
Свойства
clip_contents |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Методы
void |
ensure_control_visible(control: Control) |
Свойства темы
|
||
|
||
|
||
|
||
Сигналы
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 🔗
Если true, focus отрисовывается, когда ScrollContainer или один из его дочерних узлов находится в фокусе.
Если true, ScrollContainer автоматически прокрутит до сфокусированных дочерних элементов (включая косвенные дочерние элементы), чтобы убедиться, что они полностью видны.
ScrollMode horizontal_scroll_mode = 1 🔗
void set_horizontal_scroll_mode(value: ScrollMode)
ScrollMode get_horizontal_scroll_mode()
Управляет возможностью использования горизонтальной полосы прокрутки и тем, когда она должна быть видна.
Мертвая зона для сенсорной прокрутки. Меньшая мертвая зона делает прокрутку более чувствительной.
ScrollHintMode scroll_hint_mode = 0 🔗
void set_scroll_hint_mode(value: ScrollHintMode)
ScrollHintMode get_scroll_hint_mode()
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.
Текущее значение горизонтальной прокрутки.
Примечание: Если вы устанавливаете это значение в функции Node._ready() или более ранней, его необходимо обернуть в Object.set_deferred(), поскольку Range.max_value полосы прокрутки еще не инициализирован.
func _ready():
set_deferred("scroll_horizontal", 600)
float scroll_horizontal_custom_step = -1.0 🔗
Переопределяет ScrollBar.custom_step, используемый при нажатии кнопок горизонтального увеличения и уменьшения внутренней полосы прокрутки или при использовании клавиш со стрелками, когда ScrollBar находится в фокусе.
Текущее значение вертикальной прокрутки.
Примечание: Раннюю установку необходимо отложить, как и в scroll_horizontal.
func _ready():
set_deferred("scroll_vertical", 600)
float scroll_vertical_custom_step = -1.0 🔗
Переопределяет ScrollBar.custom_step, используемый при нажатии кнопок вертикального увеличения и уменьшения внутренней полосы прокрутки или при использовании клавиш со стрелками, когда ScrollBar находится в фокусе.
bool tile_scroll_hint = false 🔗
Если true, текстура подсказки прокрутки будет мозаичной, а не растянутой. См. scroll_hint_mode.
ScrollMode vertical_scroll_mode = 1 🔗
void set_vertical_scroll_mode(value: ScrollMode)
ScrollMode get_vertical_scroll_mode()
Управляет возможностью использования вертикальной полосы прокрутки и тем, когда она должна быть видна.
Описания метода
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 ScrollContainer. Используется только если draw_focus_border равен true.
Фон StyleBox ScrollContainer.