Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

ItemList

Успадковує: Control < CanvasItem < Node < Object

Вертикальний список виділених елементів з одним або декількома стовпчиками.

Опис

Цей контроль забезпечує вертикальний список вибраних елементів, які можуть бути в одному або в декількох стовпчиках, з кожним елементом, що має параметри для тексту і іконки. Підтримуються та можуть бути різними для кожного елемента в списку.

Вибрані елементи в списку можуть бути вибрані або вилучені і багаторазові виділення можуть бути включені. Підбір з правою кнопкою миші також може бути включений, щоб дозволити використовувати контекстні меню. Товари можуть бути "активовані" за допомогою подвійного затискання їх або натиснувши Enter.

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

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

Incremental search: Подібно 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

bool

item_{index}/disabled

false

Texture2D

item_{index}/icon

bool

item_{index}/selectable

true

String

item_{index}/text

""

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

center_on_current(center_verically: bool = true, center_horizontally: 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) 🔗

  • void set_fixed_icon_size(value: Vector2i)

  • Vector2i get_fixed_icon_size()

Розмір всіх іконок буде регулюватися.

Якщо компонент 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()

Кількість елементів в даний час в списку.


bool item_{index}/disabled = false 🔗

If true, the item at index is disabled.

Note: index is a value in the 0 .. item_count - 1 range.


Texture2D item_{index}/icon 🔗

The icon of the item at index.

Note: index is a value in the 0 .. item_count - 1 range.


bool item_{index}/selectable = true 🔗

If true, the item at index is selectable.

Note: index is a value in the 0 .. item_count - 1 range.


String item_{index}/text = "" 🔗

The text of the item at index.

Note: index is a value in the 0 .. item_count - 1 range.


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 🔗

  • void set_text_overrun_behavior(value: OverrunBehavior)

  • OverrunBehavior get_text_overrun_behavior()

Поведінка відсікання, коли текст виходить за межі прямокутника, що обмежує елемент.


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 center_on_current(center_verically: bool = true, center_horizontally: bool = true) 🔗

Ensures the currently selected item (the first selected item if multiple selection is enabled) is visible, adjusting the scroll position as necessary to place the item at the center of the list if possible. See also ensure_current_is_visible().

Fails and prints an error if both arguments are false.


void clear() 🔗

Видаляє всі елементи зі списку.


void deselect(idx: int) 🔗

Упевнюється, що елемент, пов'язаний з зазначеним індексом, не буде обрано.


void deselect_all() 🔗

Забезпечує, що не обрано жодного елемента.


void ensure_current_is_visible() 🔗

Ensures the currently selected item (the first selected item if multiple selection is enabled) is visible, adjusting the scroll position as necessary. See also center_on_current().


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.pic.


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) 🔗

Перемістити пункт з індексу пара від_idx до to_idx.


void remove_item(idx: int) 🔗

Видалити пункт, зазначений індексом idx з списку.


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

Selects the item at the specified index.

Note: This method does not trigger the item selection signal.


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 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.multiканал_signed_distance_field ввімкнено, його FontFile.msdf_pixel_range необхідно встановити принаймні twice значення index_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.