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.
Свойства
|
||
|
||
|
||
|
||
|
||
clip_contents |
|
|
|
||
|
||
focus_mode |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Методы
Свойства темы
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Сигналы
empty_clicked(at_position: Vector2, mouse_button_index: int) 🔗
Вызывается при любом щелчке мыши в пределах прямоугольника списка, но на пустом месте.
at_position — это позиция щелчка в локальной системе координат этого элемента управления.
Вызывается при активации указанного элемента списка двойным щелчком или нажатием Enter.
item_clicked(index: int, at_position: Vector2, mouse_button_index: int) 🔗
Вызывается при щелчке по указанному элементу списка любой кнопкой мыши.
at_position — это позиция щелчка в локальной системе координат этого элемента управления.
Выдается, когда выбран указанный элемент. Применимо только в режиме одиночного выбора.
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
Будет отображаться только подсказка прокрутки внизу экрана.
Описания свойств
Если true, текущий выбранный элемент можно выбрать снова.
bool allow_rmb_select = false 🔗
Если true, щелчок правой кнопкой мыши может выбирать элементы.
Если true, позволяет осуществлять навигацию по ItemList с помощью буквенных клавиш посредством инкрементного поиска.
Если true, элемент управления автоматически изменит высоту в соответствии со своим содержимым.
Если true, элемент управления автоматически изменит ширину в соответствии со своим содержимым.
Ширина, к которой будут скорректированы все столбцы.
Значение ноль отключает корректировку, каждый элемент будет иметь ширину, равную ширине его содержимого, а столбцы будут иметь неравномерную ширину.
Vector2i fixed_icon_size = Vector2i(0, 0) 🔗
Размер всех значков будет скорректирован.
Если компонент X или Y не больше нуля, размер значка не будет затронут.
Положение значка, над текстом или слева от него. См. константы IconMode.
Масштаб значка, примененный после fixed_icon_size и транспонирования, вступает в силу.
Количество элементов в списке на данный момент.
Максимальное количество столбцов в списке.
Если больше нуля, содержимое будет разделено между указанными столбцами.
Значение ноль означает неограниченное количество столбцов, т. е. все элементы будут помещены в одну строку.
Максимальное количество строк текста, разрешенное в каждом элементе. Место будет зарезервировано, даже если строк текста недостаточно для отображения.
Примечание: Это свойство вступает в силу только тогда, когда icon_mode равно ICON_MODE_TOP. Чтобы сделать перенос текста, fixed_column_width должно быть больше нуля.
bool same_column_width = false 🔗
Будут ли все столбцы иметь одинаковую ширину.
Если true, ширина равна наибольшей ширине столбца из всех столбцов.
ScrollHintMode scroll_hint_mode = 0 🔗
void set_scroll_hint_mode(value: ScrollHintMode)
ScrollHintMode get_scroll_hint_mode()
Будет отображаться способ отображения подсказок прокрутки (индикаторов, показывающих, что контент все еще можно прокручивать в определенном направлении).
SelectMode select_mode = 0 🔗
void set_select_mode(value: SelectMode)
SelectMode get_select_mode()
Позволяет выбрать один или несколько элементов. См. константы SelectMode.
OverrunBehavior text_overrun_behavior = 3 🔗
void set_text_overrun_behavior(value: OverrunBehavior)
OverrunBehavior get_text_overrun_behavior()
Поведение обрезки, когда текст выходит за пределы ограничивающего прямоугольника элемента.
bool tile_scroll_hint = false 🔗
Если true, текстура подсказки прокрутки будет мозаичной, а не растянутой. См. scroll_hint_mode.
bool wraparound_items = true 🔗
Если 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_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.
Возвращает 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.
Удаляет элемент, указанный индексом 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.
Горизонтальное расстояние между элементами.
Расстояние между значком элемента и текстом.
Вертикальный интервал между строками текста.
Размер контура текста элемента.
Примечание: При использовании шрифта с включенным FontFile.multichannel_signed_distance_field его FontFile.msdf_pixel_range должен быть установлен как минимум в дважды раза больше значения outline_size, чтобы контур выглядел правильно. В противном случае контур может оказаться обрезанным раньше, чем предполагалось.
Вертикальное расстояние между элементами.
Font текста элемента.
Размер шрифта текста элемента.
Индикатор, который будет отображаться, когда контент еще можно прокручивать. См. scroll_hint_mode.
StyleBox используется для курсора, когда фокус находится на ItemList.
StyleBox используется для курсора, когда ItemList не находится в фокусе.
Стиль выделения для ItemList, отображаемый поверх всего остального.
StyleBox для наведенных, но не выбранных элементов.
StyleBox для наведенных и выбранных элементов, используется, когда ItemList не находится в фокусе.
StyleBox hovered_selected_focus 🔗
StyleBox для наведения и выбора элементов, используется, когда фокус находится на ItemList.
Стиль фона для ItemList.
StyleBox для выбранных элементов, используется, когда ItemList не находится в фокусе.
StyleBox для выбранных элементов, используется, когда фокус находится на ItemList.