ItemList

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

Вертикальный список выбираемых элементов с одним или несколькими столбцами.

Описание

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

Выбираемые элементы в списке можно выбирать или отменять выбор, а также можно включить множественный выбор. Выбор правой кнопкой мыши также может быть включен, чтобы разрешить использование всплывающих контекстных меню. Элементы также можно «активировать», дважды щелкнув их или нажав Enter.

Текст элемента поддерживает только однострочные строки. Символы новой строки (например, \n) в строке не будут создавать новую строку. Перенос текста включен в режиме ICON_MODE_TOP, но ширина столбца по умолчанию регулируется так, чтобы полностью соответствовать его содержимому. Вам необходимо установить fixed_column_width больше нуля, чтобы перенести текст.

Все методы set_* допускают отрицательные индексы элементов, т. е. -1 для доступа к последнему элементу, -2 для выбора предпоследнего элемента и т. д.

Инкрементный поиск: Как и PopupMenu и Tree, ItemList поддерживает поиск в списке, пока элемент управления находится в фокусе. Нажмите клавишу, которая совпадает с первой буквой имени элемента, чтобы выбрать первый элемент, начинающийся с данной буквы. После этого есть два способа выполнить инкрементный поиск: 1) Нажмите ту же клавишу еще раз до истечения времени ожидания, чтобы выбрать следующий элемент, начинающийся с той же буквы. 2) Нажмите клавиши с буквами, которые совпадают с оставшейся частью слова до истечения времени ожидания, чтобы сопоставить, чтобы выбрать нужный элемент напрямую. Оба эти действия будут сброшены к началу списка, если время ожидания прошло с момента регистрации последнего нажатия клавиши. Вы можете настроить длительность тайм-аута, изменив ProjectSettings.gui/timers/incremental_search_max_interval_msec.

Свойства

bool

allow_reselect

false

bool

allow_rmb_select

false

bool

allow_search

true

bool

auto_height

false

bool

auto_width

false

bool

clip_contents

true (overrides Control)

int

fixed_column_width

0

Vector2i

fixed_icon_size

Vector2i(0, 0)

FocusMode

focus_mode

2 (overrides Control)

IconMode

icon_mode

1

float

icon_scale

1.0

int

item_count

0

int

max_columns

1

int

max_text_lines

1

bool

same_column_width

false

ScrollHintMode

scroll_hint_mode

0

SelectMode

select_mode

0

OverrunBehavior

text_overrun_behavior

3

bool

tile_scroll_hint

false

bool

wraparound_items

true

Методы

int

add_icon_item(icon: Texture2D, selectable: bool = true)

int

add_item(text: String, icon: Texture2D = null, selectable: bool = true)

void

clear()

void

deselect(idx: int)

void

deselect_all()

void

ensure_current_is_visible()

void

force_update_list_size()

HScrollBar

get_h_scroll_bar()

int

get_item_at_position(position: Vector2, exact: bool = false) const

AutoTranslateMode

get_item_auto_translate_mode(idx: int) const

Color

get_item_custom_bg_color(idx: int) const

Color

get_item_custom_fg_color(idx: int) const

Texture2D

get_item_icon(idx: int) const

Color

get_item_icon_modulate(idx: int) const

Rect2

get_item_icon_region(idx: int) const

String

get_item_language(idx: int) const

Variant

get_item_metadata(idx: int) const

Rect2

get_item_rect(idx: int, expand: bool = true) const

String

get_item_text(idx: int) const

TextDirection

get_item_text_direction(idx: int) const

String

get_item_tooltip(idx: int) const

PackedInt32Array

get_selected_items()

VScrollBar

get_v_scroll_bar()

bool

is_anything_selected()

bool

is_item_disabled(idx: int) const

bool

is_item_icon_transposed(idx: int) const

bool

is_item_selectable(idx: int) const

bool

is_item_tooltip_enabled(idx: int) const

bool

is_selected(idx: int) const

void

move_item(from_idx: int, to_idx: int)

void

remove_item(idx: int)

void

select(idx: int, single: bool = true)

void

set_item_auto_translate_mode(idx: int, mode: AutoTranslateMode)

void

set_item_custom_bg_color(idx: int, custom_bg_color: Color)

void

set_item_custom_fg_color(idx: int, custom_fg_color: Color)

void

set_item_disabled(idx: int, disabled: bool)

void

set_item_icon(idx: int, icon: Texture2D)

void

set_item_icon_modulate(idx: int, modulate: Color)

void

set_item_icon_region(idx: int, rect: Rect2)

void

set_item_icon_transposed(idx: int, transposed: bool)

void

set_item_language(idx: int, language: String)

void

set_item_metadata(idx: int, metadata: Variant)

void

set_item_selectable(idx: int, selectable: bool)

void

set_item_text(idx: int, text: String)

void

set_item_text_direction(idx: int, direction: TextDirection)

void

set_item_tooltip(idx: int, tooltip: String)

void

set_item_tooltip_enabled(idx: int, enable: bool)

void

sort_items_by_text()

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

Color

font_color

Color(0.65, 0.65, 0.65, 1)

Color

font_hovered_color

Color(0.95, 0.95, 0.95, 1)

Color

font_hovered_selected_color

Color(1, 1, 1, 1)

Color

font_outline_color

Color(0, 0, 0, 1)

Color

font_selected_color

Color(1, 1, 1, 1)

Color

guide_color

Color(0.7, 0.7, 0.7, 0.25)

Color

scroll_hint_color

Color(0, 0, 0, 1)

int

h_separation

4

int

icon_margin

4

int

line_separation

2

int

outline_size

0

int

v_separation

4

Font

font

int

font_size

Texture2D

scroll_hint

StyleBox

cursor

StyleBox

cursor_unfocused

StyleBox

focus

StyleBox

hovered

StyleBox

hovered_selected

StyleBox

hovered_selected_focus

StyleBox

panel

StyleBox

selected

StyleBox

selected_focus


Сигналы

empty_clicked(at_position: Vector2, mouse_button_index: int) 🔗

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

at_position — это позиция щелчка в локальной системе координат этого элемента управления.


item_activated(index: int) 🔗

Вызывается при активации указанного элемента списка двойным щелчком или нажатием Enter.


item_clicked(index: int, at_position: Vector2, mouse_button_index: int) 🔗

Вызывается при щелчке по указанному элементу списка любой кнопкой мыши.

at_position — это позиция щелчка в локальной системе координат этого элемента управления.


item_selected(index: int) 🔗

Выдается, когда выбран указанный элемент. Применимо только в режиме одиночного выбора.

allow_reselect должен быть включен для повторного выбора элемента.


multi_selected(index: int, selected: bool) 🔗

Генерируется при множественном выборе в списке, допускающем множественный выбор.


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

enum IconMode: 🔗

IconMode ICON_MODE_TOP = 0

Значок рисуется над текстом.

IconMode ICON_MODE_LEFT = 1

Значок рисуется слева от текста.


enum SelectMode: 🔗

SelectMode SELECT_SINGLE = 0

Разрешить выбор только одного элемента.

SelectMode SELECT_MULTI = 1

Позволяет выбрать несколько элементов, удерживая Ctrl или Shift.

SelectMode SELECT_TOGGLE = 2

Позволяет выбирать несколько элементов, включая и выключая их.


enum ScrollHintMode: 🔗

ScrollHintMode SCROLL_HINT_MODE_DISABLED = 0

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

ScrollHintMode SCROLL_HINT_MODE_BOTH = 1

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

ScrollHintMode SCROLL_HINT_MODE_TOP = 2

Будет отображаться только подсказка прокрутки вверху.

ScrollHintMode SCROLL_HINT_MODE_BOTTOM = 3

Будет отображаться только подсказка прокрутки внизу экрана.


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

bool allow_reselect = false 🔗

  • void set_allow_reselect(value: bool)

  • bool get_allow_reselect()

Если true, текущий выбранный элемент можно выбрать снова.


bool allow_rmb_select = false 🔗

  • void set_allow_rmb_select(value: bool)

  • bool get_allow_rmb_select()

Если true, щелчок правой кнопкой мыши может выбирать элементы.


  • void set_allow_search(value: bool)

  • bool get_allow_search()

Если true, позволяет осуществлять навигацию по ItemList с помощью буквенных клавиш посредством инкрементного поиска.


bool auto_height = false 🔗

  • void set_auto_height(value: bool)

  • bool has_auto_height()

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


bool auto_width = false 🔗

  • void set_auto_width(value: bool)

  • bool has_auto_width()

Если true, элемент управления автоматически изменит ширину в соответствии со своим содержимым.


int fixed_column_width = 0 🔗

  • void set_fixed_column_width(value: int)

  • int get_fixed_column_width()

Ширина, к которой будут скорректированы все столбцы.

Значение ноль отключает корректировку, каждый элемент будет иметь ширину, равную ширине его содержимого, а столбцы будут иметь неравномерную ширину.


Vector2i fixed_icon_size = Vector2i(0, 0) 🔗

Размер всех значков будет скорректирован.

Если компонент X или Y не больше нуля, размер значка не будет затронут.


IconMode icon_mode = 1 🔗

Положение значка, над текстом или слева от него. См. константы IconMode.


float icon_scale = 1.0 🔗

  • void set_icon_scale(value: float)

  • float get_icon_scale()

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


int item_count = 0 🔗

  • void set_item_count(value: int)

  • int get_item_count()

Количество элементов в списке на данный момент.


int max_columns = 1 🔗

  • void set_max_columns(value: int)

  • int get_max_columns()

Максимальное количество столбцов в списке.

Если больше нуля, содержимое будет разделено между указанными столбцами.

Значение ноль означает неограниченное количество столбцов, т. е. все элементы будут помещены в одну строку.


int max_text_lines = 1 🔗

  • void set_max_text_lines(value: int)

  • int get_max_text_lines()

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

Примечание: Это свойство вступает в силу только тогда, когда icon_mode равно ICON_MODE_TOP. Чтобы сделать перенос текста, fixed_column_width должно быть больше нуля.


bool same_column_width = false 🔗

  • void set_same_column_width(value: bool)

  • bool is_same_column_width()

Будут ли все столбцы иметь одинаковую ширину.

Если true, ширина равна наибольшей ширине столбца из всех столбцов.


ScrollHintMode scroll_hint_mode = 0 🔗

Будет отображаться способ отображения подсказок прокрутки (индикаторов, показывающих, что контент все еще можно прокручивать в определенном направлении).


SelectMode select_mode = 0 🔗

Позволяет выбрать один или несколько элементов. См. константы SelectMode.


OverrunBehavior text_overrun_behavior = 3 🔗

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


bool tile_scroll_hint = false 🔗

  • void set_tile_scroll_hint(value: bool)

  • bool is_scroll_hint_tiled()

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


bool wraparound_items = true 🔗

  • void set_wraparound_items(value: bool)

  • bool has_wraparound_items()

Если true, элемент управления автоматически переместит элементы в новую строку, чтобы соответствовать своему содержимому. См. также HFlowContainer для этого поведения.

Если false, элемент управления добавит горизонтальную полосу прокрутки, чтобы сделать все элементы видимыми.


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

int add_icon_item(icon: Texture2D, selectable: bool = true) 🔗

Добавляет элемент в список элементов без текста, только значок. Возвращает индекс добавленного элемента.


int add_item(text: String, icon: Texture2D = null, selectable: bool = true) 🔗

Добавляет элемент в список элементов с указанным текстом. Возвращает индекс добавленного элемента.

Укажите icon или используйте null в качестве icon для элемента списка без значка.

Если selectable равен true, элемент списка будет доступен для выбора.


void clear() 🔗

Удаляет все элементы из списка.


void deselect(idx: int) 🔗

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


void deselect_all() 🔗

Гарантирует, что не выбрано ни одного элемента.


void ensure_current_is_visible() 🔗

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


void force_update_list_size() 🔗

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


HScrollBar get_h_scroll_bar() 🔗

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

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


int get_item_at_position(position: Vector2, exact: bool = false) const 🔗

Возвращает индекс элемента в указанной position.

Если в этой точке нет элемента, будет возвращено -1, если exact равен true, а в противном случае будет возвращен ближайший индекс элемента.

Примечание: Возвращаемое значение ненадежно, если вызывается сразу после изменения ItemList, до того, как он перерисуется в следующем кадре.


AutoTranslateMode get_item_auto_translate_mode(idx: int) const 🔗

Возвращает режим автоматического перевода элемента.


Color get_item_custom_bg_color(idx: int) const 🔗

Возвращает пользовательский цвет фона элемента, указанного индексом idx.


Color get_item_custom_fg_color(idx: int) const 🔗

Возвращает пользовательский цвет переднего плана элемента, указанного индексом idx.


Texture2D get_item_icon(idx: int) const 🔗

Возвращает значок, связанный с указанным индексом.


Color get_item_icon_modulate(idx: int) const 🔗

Возвращает Color значка, модулирующего элемента по указанному индексу.


Rect2 get_item_icon_region(idx: int) const 🔗

Возвращает область используемой иконки элемента. Будет использована вся иконка, если область не имеет области.


String get_item_language(idx: int) const 🔗

Возвращает код языка текста элемента.


Variant get_item_metadata(idx: int) const 🔗

Возвращает значение метаданных указанного индекса.


Rect2 get_item_rect(idx: int, expand: bool = true) const 🔗

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

Примечание: Возвращаемое значение ненадежно, если вызывается сразу после изменения ItemList, до того, как он перерисуется в следующем кадре.


String get_item_text(idx: int) const 🔗

Возвращает текст, связанный с указанным индексом.


TextDirection get_item_text_direction(idx: int) const 🔗

Возвращает базовое направление написания текста элемента.


String get_item_tooltip(idx: int) const 🔗

Возвращает подсказку, связанную с указанным индексом.


PackedInt32Array get_selected_items() 🔗

Возвращает массив с индексами выбранных элементов.


VScrollBar get_v_scroll_bar() 🔗

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

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


bool is_anything_selected() 🔗

Возвращает true, если выбран один или несколько элементов.


bool is_item_disabled(idx: int) const 🔗

Возвращает true, если элемент по указанному индексу отключен.


bool is_item_icon_transposed(idx: int) const 🔗

Возвращает true, если значок элемента будет отрисован транспонированным, т. е. оси X и Y поменяются местами.


bool is_item_selectable(idx: int) const 🔗

Возвращает true, если элемент по указанному индексу можно выбрать.


bool is_item_tooltip_enabled(idx: int) const 🔗

Возвращает true, если подсказка включена для указанного индекса элемента.


bool is_selected(idx: int) const 🔗

Возвращает true, если элемент с указанным индексом в данный момент выбран.


void move_item(from_idx: int, to_idx: int) 🔗

Перемещает элемент из индекса from_idx в to_idx.


void remove_item(idx: int) 🔗

Удаляет элемент, указанный индексом idx, из списка.


void select(idx: int, single: bool = true) 🔗

Выберите элемент по указанному индексу.

Примечание: Этот метод не запускает сигнал выбора элемента.


void set_item_auto_translate_mode(idx: int, mode: AutoTranslateMode) 🔗

Устанавливает режим автоматического перевода элемента, связанного с указанным индексом.

Элементы используют Node.AUTO_TRANSLATE_MODE_INHERIT по умолчанию, которая использует тот же режим автоматического перевода, что и сам ItemList.


void set_item_custom_bg_color(idx: int, custom_bg_color: Color) 🔗

Устанавливает цвет фона элемента, указанного индексом idx, на указанный Color.


void set_item_custom_fg_color(idx: int, custom_fg_color: Color) 🔗

Устанавливает цвет переднего плана элемента, указанного индексом idx, на указанный Color.


void set_item_disabled(idx: int, disabled: bool) 🔗

Отключает (или включает) элемент по указанному индексу.

Отключенные элементы не могут быть выбраны и не вызывают сигналы активации (при двойном щелчке или нажатии Enter).


void set_item_icon(idx: int, icon: Texture2D) 🔗

Устанавливает (или заменяет) Texture2D значка, связанного с указанным индексом.


void set_item_icon_modulate(idx: int, modulate: Color) 🔗

Устанавливает модулирующий Color элемента, связанного с указанным индексом.


void set_item_icon_region(idx: int, rect: Rect2) 🔗

Устанавливает область используемой иконки элемента. Будет использоваться вся иконка, если область не имеет области.


void set_item_icon_transposed(idx: int, transposed: bool) 🔗

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


void set_item_language(idx: int, language: String) 🔗

Устанавливает языковой код текста для элемента по заданному индексу равным language. Это используется для алгоритмов переноса строк и формирования текста. Если language пусто, используется текущая локаль.


void set_item_metadata(idx: int, metadata: Variant) 🔗

Задает значение (любого типа), которое будет сохранено вместе с элементом, связанным с указанным индексом.


void set_item_selectable(idx: int, selectable: bool) 🔗

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


void set_item_text(idx: int, text: String) 🔗

Устанавливает текст элемента, связанного с указанным индексом.


void set_item_text_direction(idx: int, direction: TextDirection) 🔗

Устанавливает базовое направление написания текста элемента.


void set_item_tooltip(idx: int, tooltip: String) 🔗

Устанавливает подсказку для элемента, связанного с указанным индексом.


void set_item_tooltip_enabled(idx: int, enable: bool) 🔗

Устанавливает, включена ли подсказка для указанного индекса элемента.


void sort_items_by_text() 🔗

Сортирует элементы в списке по их тексту.


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

Color font_color = Color(0.65, 0.65, 0.65, 1) 🔗

Color текста элемента по умолчанию.


Color font_hovered_color = Color(0.95, 0.95, 0.95, 1) 🔗

Color текста используемый, когда на элемент наведен курсор, но он еще не выбран.


Color font_hovered_selected_color = Color(1, 1, 1, 1) 🔗

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


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

Оттенок текстового контура элемента.


Color font_selected_color = Color(1, 1, 1, 1) 🔗

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


Color guide_color = Color(0.7, 0.7, 0.7, 0.25) 🔗

Color направляющей линии. Направляющая линия — это линия, проведенная между каждым рядом элементов.


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

Color используется для модуляции текстуры scroll_hint.


int h_separation = 4 🔗

Горизонтальное расстояние между элементами.


int icon_margin = 4 🔗

Расстояние между значком элемента и текстом.


int line_separation = 2 🔗

Вертикальный интервал между строками текста.


int outline_size = 0 🔗

Размер контура текста элемента.

Примечание: При использовании шрифта с включенным FontFile.multichannel_signed_distance_field его FontFile.msdf_pixel_range должен быть установлен как минимум в дважды раза больше значения outline_size, чтобы контур выглядел правильно. В противном случае контур может оказаться обрезанным раньше, чем предполагалось.


int v_separation = 4 🔗

Вертикальное расстояние между элементами.


Font font 🔗

Font текста элемента.


int font_size 🔗

Размер шрифта текста элемента.


Texture2D scroll_hint 🔗

Индикатор, который будет отображаться, когда контент еще можно прокручивать. См. scroll_hint_mode.


StyleBox cursor 🔗

StyleBox используется для курсора, когда фокус находится на ItemList.


StyleBox cursor_unfocused 🔗

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


StyleBox focus 🔗

Стиль выделения для ItemList, отображаемый поверх всего остального.


StyleBox hovered 🔗

StyleBox для наведенных, но не выбранных элементов.


StyleBox hovered_selected 🔗

StyleBox для наведенных и выбранных элементов, используется, когда ItemList не находится в фокусе.


StyleBox hovered_selected_focus 🔗

StyleBox для наведения и выбора элементов, используется, когда фокус находится на ItemList.


StyleBox panel 🔗

Стиль фона для ItemList.


StyleBox selected 🔗

StyleBox для выбранных элементов, используется, когда ItemList не находится в фокусе.


StyleBox selected_focus 🔗

StyleBox для выбранных элементов, используется, когда фокус находится на ItemList.