SplitContainer

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

Наследуется от: HSplitContainer, VSplitContainer

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

Описание

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

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

Свойства

bool

collapsed

false

bool

drag_area_highlight_in_editor

false

int

drag_area_margin_begin

0

int

drag_area_margin_end

0

int

drag_area_offset

0

DraggerVisibility

dragger_visibility

0

bool

dragging_enabled

true

int

split_offset

0

bool

touch_dragger_enabled

false

bool

vertical

false

Методы

void

clamp_split_offset()

Control

get_drag_area_control()

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

Color

touch_dragger_color

Color(1, 1, 1, 0.3)

Color

touch_dragger_hover_color

Color(1, 1, 1, 0.6)

Color

touch_dragger_pressed_color

Color(1, 1, 1, 1)

int

autohide

1

int

minimum_grab_thickness

6

int

separation

12

Texture2D

grabber

Texture2D

h_grabber

Texture2D

h_touch_dragger

Texture2D

touch_dragger

Texture2D

v_grabber

Texture2D

v_touch_dragger

StyleBox

split_bar_background


Сигналы

drag_ended() 🔗

Генерируется, когда пользователь заканчивает перетаскивание.


drag_started() 🔗

Генерируется, когда пользователь начинает перетаскивание.


dragged(offset: int) 🔗

Генерируется, когда пользователь перетаскивает курсор.


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

enum DraggerVisibility: 🔗

DraggerVisibility DRAGGER_VISIBLE = 0

Значок раздельного перетаскивателя всегда виден, когда autohide равно false, в противном случае виден только при наведении курсора на него.

Размер значка захвата определяет минимальное 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_offset был равен 0.


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_enabled равно true, и красная, если 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 🔗

Определяет видимость перетаскивателя. Это свойство не определяет, включено ли перетаскивание или нет. Для этого используйте 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 touch_dragger_enabled = false 🔗

  • void set_touch_dragger_enabled(value: bool)

  • bool is_touch_dragger_enabled()

Если true, сенсорный манипулятор перетаскивания будет включен для лучшего использования на экранах меньшего размера. В отличие от стандартного захвата, этот манипулятор перекрывает дочерние элементы SplitContainer и не влияет на их минимальное разделение. Стандартный захват больше не будет отображаться, если эта опция включена.


bool vertical = false 🔗

  • void set_vertical(value: bool)

  • bool is_vertical()

Если true, SplitContainer расположит свои дочерние элементы вертикально, а не горизонтально.

Нельзя изменить при использовании HSplitContainer и VSplitContainer.


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

void clamp_split_offset() 🔗

Ограничивает значение split_offset, чтобы оно не выходило за пределы текущих возможных минимальных и максимальных значений.


Control get_drag_area_control() 🔗

Возвращает область перетаскивания Control. Например, вы можете переместить предварительно настроенную кнопку в область перетаскивания Control, чтобы она перемещалась вместе с разделительной полосой. Попробуйте установить якоря Button на center до вызова reparent().

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

Примечание: Область перетаскивания Control рисуется поверх дочерних элементов SplitContainer, поэтому объекты рисования CanvasItem, вызываемые из Control, и дочерние элементы, добавленные в Control, также будут отображаться поверх дочерних элементов SplitContainer. Попробуйте установить Control.mouse_filter пользовательских дочерних элементов на Control.MOUSE_FILTER_IGNORE, чтобы предотвратить блокировку мыши при перетаскивании, если это необходимо.

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


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

Color touch_dragger_color = Color(1, 1, 1, 0.3) 🔗

Цвет сенсорного перетаскивателя.


Color touch_dragger_hover_color = Color(1, 1, 1, 0.6) 🔗

Цвет сенсорного ползунка при наведении курсора.


Color touch_dragger_pressed_color = Color(1, 1, 1, 1) 🔗

Цвет сенсорного ползунка при нажатии.


int autohide = 1 🔗

Логическое значение. Если 1 (true), захватчик будет автоматически скрываться, когда он не находится под курсором. Если 0 (false), он всегда виден. Member dragger_visibility должен быть DRAGGER_VISIBLE.


int minimum_grab_thickness = 6 🔗

Минимальная толщина области, на которую пользователи могут нажать, чтобы захватить разделительную полосу. Это гарантирует, что разделительную полосу все еще можно перетаскивать, если размер Separate или h_grabber / v_grabber слишком узкий для легкого выбора.


int separation = 12 🔗

Толщина разделительной полосы, т. е. зазор между двумя дочерними элементами контейнера. Это переопределяется размером значка граббера, если dragger_visibility установлен на DRAGGER_VISIBLE или DRAGGER_HIDDEN, а Separate меньше размера значка граббера на той же оси.

Примечание: Чтобы получить значения Separate меньше размера значка граббера, например, 1 px hairline, установите h_grabber или v_grabber на новый ImageTexture, который фактически устанавливает размер значка граббера на 0 px.


Texture2D grabber 🔗

Значок, используемый для граббера (перетаскивателя), нарисованного в средней области. Используется только в HSplitContainer и VSplitContainer. Для SplitContainer см. h_grabber и v_grabber.


Texture2D h_grabber 🔗

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


Texture2D h_touch_dragger 🔗

Значок, используемый для маркера перетаскивания, когда touch_dragger_enabled имеет значение true, а vertical имеет значение false.


Texture2D touch_dragger 🔗

Значок, используемый для ручки перетаскивания, когда touch_dragger_enabled равен true. Используется только в HSplitContainer и VSplitContainer. Для SplitContainer см. h_touch_dragger и v_touch_dragger.


Texture2D v_grabber 🔗

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


Texture2D v_touch_dragger 🔗

Значок, используемый для маркера перетаскивания, когда touch_dragger_enabled имеет значение true и vertical имеет значение true.


StyleBox split_bar_background 🔗

Определяет фон разделенной полосы, если ее толщина больше нуля.