ItemList

Hereda: Control < CanvasItem < Node < Object

Una lista vertical de elementos seleccionables con una o varias columnas.

Descripción

This control provides a vertical list of selectable items that may be in a single or in multiple columns, with each item having options for text and an icon. Tooltips are supported and may be different for every item in the list.

Selectable items in the list may be selected or deselected and multiple selection may be enabled. Selection with right mouse button may also be enabled to allow use of popup context menus. Items may also be "activated" by double-clicking them or by pressing Enter.

Item text only supports single-line strings. Newline characters (e.g. \n) in the string won't produce a newline. Text wrapping is enabled in ICON_MODE_TOP mode, but the column's width is adjusted to fully fit its content by default. You need to set fixed_column_width greater than zero to wrap the text.

All set_* methods allow negative item indices, i.e. -1 to access the last item, -2 to select the second-to-last item, and so on.

Incremental search: Like PopupMenu and Tree, ItemList supports searching within the list while the control is focused. Press a key that matches the first letter of an item's name to select the first item starting with the given letter. After that point, there are two ways to perform incremental search: 1) Press the same key again before the timeout duration to select the next item starting with the same letter. 2) Press letter keys that match the rest of the word before the timeout duration to match to select the item in question directly. Both of these actions will be reset to the beginning of the list if the timeout duration has passed since the last keystroke was registered. You can adjust the timeout duration by changing ProjectSettings.gui/timers/incremental_search_max_interval_msec.

Propiedades

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

SelectMode

select_mode

0

OverrunBehavior

text_overrun_behavior

3

bool

wraparound_items

true

Métodos

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

Propiedades del Tema

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)

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

StyleBox

cursor

StyleBox

cursor_unfocused

StyleBox

focus

StyleBox

hovered

StyleBox

hovered_selected

StyleBox

hovered_selected_focus

StyleBox

panel

StyleBox

selected

StyleBox

selected_focus


Señales

empty_clicked(at_position: Vector2, mouse_button_index: int) 🔗

Emitida cuando se produce cualquier clic del ratón dentro del rectángulo de la lista pero en un espacio vacío.

at_position es la posición del clic en el sistema de coordenadas local de este control.


item_activated(index: int) 🔗

Emitida cuando el elemento de la lista especificado se activa haciendo doble clic o pulsando Enter.


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

Emitida cuando se ha hecho clic en un elemento de la lista especificado con cualquier botón del ratón.

at_position es la posición del clic en el sistema de coordenadas local de este control.


item_selected(index: int) 🔗

Emitida cuando se selecciona un elemento especificado. Solo aplicable en el modo de selección única.

Se debe activar allow_reselect para volver a seleccionar un elemento.


multi_selected(index: int, selected: bool) 🔗

Emitida cuando se altera una selección múltiple en una lista que permite la selección múltiple.


Enumeraciones

enum IconMode: 🔗

IconMode ICON_MODE_TOP = 0

El icono se dibuja sobre el texto.

IconMode ICON_MODE_LEFT = 1

El icono se dibuja a la izquierda del texto.


enum SelectMode: 🔗

SelectMode SELECT_SINGLE = 0

Sólo permite seleccionar un único elemento.

SelectMode SELECT_MULTI = 1

Permite seleccionar varios elementos manteniendo pulsada la tecla Ctrl o Shift.

SelectMode SELECT_TOGGLE = 2

Permite seleccionar varios elementos activándolos y desactivándolos.


Descripciones de Propiedades

bool allow_reselect = false 🔗

  • void set_allow_reselect(value: bool)

  • bool get_allow_reselect()

Si es true, el elemento actualmente seleccionado puede ser seleccionado de nuevo.


bool allow_rmb_select = false 🔗

  • void set_allow_rmb_select(value: bool)

  • bool get_allow_rmb_select()

Si es true, al hacer clic con el botón derecho del ratón se pueden seleccionar elementos.


  • void set_allow_search(value: bool)

  • bool get_allow_search()

Si es true, permite navegar por ItemList con las teclas de letras a través de la búsqueda incremental.


bool auto_height = false 🔗

  • void set_auto_height(value: bool)

  • bool has_auto_height()

Si es true, el control redimensionará automáticamente la altura para que se ajuste a su contenido.


bool auto_width = false 🔗

  • void set_auto_width(value: bool)

  • bool has_auto_width()

Si es true, el control redimensionará automáticamente el ancho para que se ajuste a su contenido.


int fixed_column_width = 0 🔗

  • void set_fixed_column_width(value: int)

  • int get_fixed_column_width()

El ancho de todas las columnas se ajustará.

Un valor de cero desactiva el ajuste, cada elemento tendrá una anchura igual a la de su contenido y las columnas tendrán una anchura desigual.


Vector2i fixed_icon_size = Vector2i(0, 0) 🔗

El tamaño de todos los iconos se ajustará.

Si el componente X o Y no es mayor que cero, el tamaño del icono no se verá afectado.


IconMode icon_mode = 1 🔗

La posición del icono, ya sea arriba o a la izquierda del texto. Véase las constantes IconMode.


float icon_scale = 1.0 🔗

  • void set_icon_scale(value: float)

  • float get_icon_scale()

La escala de icono aplicada después de fixed_icon_size y la transposición tiene efecto.


int item_count = 0 🔗

  • void set_item_count(value: int)

  • int get_item_count()

El número de elementos que hay actualmente en la lista.


int max_columns = 1 🔗

  • void set_max_columns(value: int)

  • int get_max_columns()

Columnas máximas que tendrá la lista.

Si es mayor que cero, el contenido se dividirá entre las columnas especificadas.

Un valor de cero significa que las columnas son ilimitadas, es decir, que todos los artículos se pondrán en la misma fila.


int max_text_lines = 1 🔗

  • void set_max_text_lines(value: int)

  • int get_max_text_lines()

Líneas de texto máximas permitidas en cada elemento. Se reservará espacio incluso cuando no haya suficientes líneas de texto para mostrar.

Nota: Esta propiedad sólo tiene efecto cuando icon_mode es ICON_MODE_TOP. Para hacer la envoltura de texto, fixed_column_width debe ser mayor que cero.


bool same_column_width = false 🔗

  • void set_same_column_width(value: bool)

  • bool is_same_column_width()

Si todas las columnas tendrán el mismo ancho.

Si es true, el ancho es igual al mayor ancho de todas las columnas.


SelectMode select_mode = 0 🔗

Permite la selección de uno o varios elementos. Véase las constantes SelectMode.


OverrunBehavior text_overrun_behavior = 3 🔗

El comportamiento de recorte cuando el texto excede el rectángulo delimitador de un elemento.


bool wraparound_items = true 🔗

  • void set_wraparound_items(value: bool)

  • bool has_wraparound_items()

Si es true, el control moverá automáticamente los elementos a una nueva fila para que quepan en su contenido. Véase también HFlowContainer para este comportamiento.

Si es false, el control añadirá una barra de desplazamiento horizontal para hacer visibles todos los elementos.


Descripciones de Métodos

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

Añade un elemento a la lista de elementos sin texto, solo un icono. Devuelve el índice del elemento añadido.


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

Añade un elemento a la lista de elementos con el texto especificado. Devuelve el índice del elemento añadido.

Especifica un icon, o usa null como icon para un elemento de la lista sin icono.

Si selectable es true, el elemento de la lista será seleccionable.


void clear() 🔗

Elimina todos los elementos de la lista.


void deselect(idx: int) 🔗

Asegura que no se seleccione el elemento asociado al índice especificado.


void deselect_all() 🔗

Se asegura de que no haya elementos seleccionados.


void ensure_current_is_visible() 🔗

Asegúrate de que la selección actual sea visible, ajustando la posición del scroll según sea necesario.


void force_update_list_size() 🔗

Fuerza una actualización del tamaño de la lista según sus elementos. Esto sucede automáticamente cuando cambia el tamaño de los elementos, u otros ajustes relevantes como auto_height. El método se puede utilizar para activar la actualización antes del siguiente pase de dibujo.


HScrollBar get_h_scroll_bar() 🔗

Devuelve la barra de desplazamiento horizontal.

Advertencia: Este es un nodo interno requerido, eliminarlo y liberarlo puede provocar un fallo. Si deseas ocultarlo o alguno de sus hijos, utiliza su propiedad CanvasItem.visible.


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

Devuelve el índice del elemento en la position dada.

Cuando no hay ningún elemento en ese punto, se devolverá -1 si exact es true, y si no, se devolverá el índice del elemento más cercano.

Nota: El valor devuelto no es fiable si se llama justo después de modificar el ItemList, antes de que se vuelva a dibujar en el siguiente fotograma.


AutoTranslateMode get_item_auto_translate_mode(idx: int) const 🔗

Devuelve el modo de traducción automática del elemento.


Color get_item_custom_bg_color(idx: int) const 🔗

Devuelve el color de fondo personalizado del elemento especificado por el índice idx.


Color get_item_custom_fg_color(idx: int) const 🔗

Devuelve el color de primer plano personalizado del elemento especificado por el índice idx.


Texture2D get_item_icon(idx: int) const 🔗

Devuelve el icono asociado al índice especificado.


Color get_item_icon_modulate(idx: int) const 🔗

Devuelve un Color del icono de un elemento modulador en el índice especificado.


Rect2 get_item_icon_region(idx: int) const 🔗

Devuelve la región del icono del elemento utilizado. El icono completo será utilizado si la región no tiene área.


String get_item_language(idx: int) const 🔗

Devuelve el código de idioma del texto del elemento.


Variant get_item_metadata(idx: int) const 🔗

Devuelve el valor de los metadatos del índice especificado.


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

Devuelve la posición y el tamaño del elemento con el índice especificado, en el sistema de coordenadas del nodo ItemList. Si expand es true, la última columna se expande para rellenar el resto de la fila.

Nota: El valor devuelto no es fiable si se llama justo después de modificar el ItemList, antes de que se redibuje en el siguiente fotograma.


String get_item_text(idx: int) const 🔗

Devuelve el texto asociado al índice especificado.


TextDirection get_item_text_direction(idx: int) const 🔗

Devuelve la dirección de escritura base del texto del elemento.


String get_item_tooltip(idx: int) const 🔗

Devuelve la sugerencia de la herramienta asociada con el índice especificado.


PackedInt32Array get_selected_items() 🔗

Devuelve un array con los índices de los elementos seleccionados.


VScrollBar get_v_scroll_bar() 🔗

Devuelve la barra de desplazamiento vertical.

Advertencia: Este es un nodo interno requerido, eliminarlo y liberarlo puede causar un crasheo. Si deseas ocultarlo o a alguno de sus hijos, usa su propiedad CanvasItem.visible.


bool is_anything_selected() 🔗

Devuelve true si se seleccionan uno o más elementos.


bool is_item_disabled(idx: int) const 🔗

Devuelve true si el elemento del índice especificado está desactivado.


bool is_item_icon_transposed(idx: int) const 🔗

Devuelve true si el icono del elemento se dibujará transpuesto, es decir, los ejes X e Y se intercambian.


bool is_item_selectable(idx: int) const 🔗

Devuelve true si el elemento en el índice especificado es seleccionable.


bool is_item_tooltip_enabled(idx: int) const 🔗

Devuelve true si la sugerencia está habilitada para el índice del artículo especificado.


bool is_selected(idx: int) const 🔗

Devuelve true si el elemento del índice especificado está actualmente seleccionado.


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

Mueve el elemento del índice from_idx a to_idx.


void remove_item(idx: int) 🔗

Elimina de la lista el elemento especificado por el índice idx.


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

Seleccione el elemento en el índice especificado.

Nota: Este método no dispara la señal de selección del elemento.


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

Establece el modo de autotraducción del elemento asociado con el índice especificado.

Por defecto, los elementos usan Node.AUTO_TRANSLATE_MODE_INHERIT, que utiliza el mismo modo de autotraducción que el propio ItemList.


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

Establece el color de fondo del elemento especificado por el índice idx al Color especificado.


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

Establece el color de primer plano del elemento especificado por el índice idx al Color especificado.


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

Desactiva (o activa) el elemento en el índice especificado.

Los elementos desactivados no pueden seleccionarse y no activan las señales de activación (cuando se hace doble clic o se pulsa Enter).


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

Establece (o reemplaza) el icono Texture2D asociado al índice especificado.


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

Establece un Color modulador del elemento asociado al índice especificado.


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

Establece la región del icono del elemento utilizado. El icono completo se utilizará si la región no tiene área.


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

Establece si el icono del elemento se dibujará transpuesto.


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

Establece el código de idioma del texto del elemento utilizado para los algoritmos de ajuste de línea y modelado de texto, si se deja vacío se utiliza la configuración regional actual.


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

Establece un valor (de cualquier tipo) que se almacenará con el elemento asociado al índice especificado.


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

Permite o no la selección del elemento asociado al índice especificado.


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

Establece el texto del elemento asociado con el índice especificado.


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

Establece la dirección de escritura base del texto del elemento.


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

Establece la sugerencia para el elemento asociado con el índice especificado.


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

Establece si la sugerencia está habilitada para el índice de elementos especificados.


void sort_items_by_text() 🔗

Ordena los elementos de la lista por su texto.


Descripciones de las propiedades del tema

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

Color del texto predeterminado del elemento.


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

Color del texto utilizado cuando el puntero está sobre el elemento, pero este no está seleccionado.


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

Color del texto utilizado cuando el puntero está sobre el elemento y este está seleccionado.


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

El tinte del contorno del texto del elemento.


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

Color del texto utilizado cuando el elemento está seleccionado, pero el puntero no está sobre él.


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

Color de la pauta. La pauta es una línea trazada entre cada fila de elementos.


int h_separation = 4 🔗

El espacio horizontal entre los elementos.


int icon_margin = 4 🔗

El espacio entre el icono del elemento y el texto.


int line_separation = 2 🔗

El espacio vertical entre cada línea de texto.


int outline_size = 0 🔗

El tamaño del contorno del texto del elemento.

Nota: Si se utiliza una fuente con FontFile.multichannel_signed_distance_field activado, su FontFile.msdf_pixel_range debe establecerse en al menos el doble del valor de outline_size para que la renderización del contorno se vea correcta. De lo contrario, el contorno puede parecer que se corta antes de lo previsto.


int v_separation = 4 🔗

El espacio vertical entre los artículos.


Font font 🔗

Font del texto del elemento.


int font_size 🔗

Tamaño de la fuente del texto del elemento.


StyleBox cursor 🔗

StyleBox usado para el cursor, cuando el ItemList está siendo enfocado.


StyleBox cursor_unfocused 🔗

StyleBox usado para el cursor, cuando el ItemList no está siendo enfocado.


StyleBox focus 🔗

El estilo de foco para el ItemList, dibujado sobre el fondo, pero debajo de todo lo demás.


StyleBox hovered 🔗

StyleBox para los elementos bajo el puntero, pero no seleccionados.


StyleBox hovered_selected 🔗

StyleBox para los elementos bajo el puntero y seleccionados, utilizado cuando el ItemList no está enfocado.


StyleBox hovered_selected_focus 🔗

StyleBox para los elementos bajo el puntero y seleccionados, utilizado cuando el ItemList está enfocado.


StyleBox panel 🔗

El estilo de fondo para el ItemList.


StyleBox selected 🔗

StyleBox para los elementos seleccionados, utilizado cuando la ItemList no está siendo enfocada.


StyleBox selected_focus 🔗

StyleBox para los elementos seleccionados, que se utiliza cuando se enfoca la ItemList.