Tree
Hereda: Control < CanvasItem < Node < Object
Un control utilizado para mostrar un conjunto de TreeItems internos en una estructura jerárquica.
Descripción
A control used to show a set of internal TreeItems in a hierarchical structure. The tree items can be selected, expanded and collapsed. The tree can have multiple columns with custom controls like LineEdits, buttons and popups. It can be useful for structured displays and interactions.
Trees are built via code, using TreeItem objects to create the structure. They have a single root, but multiple roots can be simulated with hide_root:
func _ready():
var tree = Tree.new()
var root = tree.create_item()
tree.hide_root = true
var child1 = tree.create_item(root)
var child2 = tree.create_item(root)
var subchild1 = tree.create_item(child1)
subchild1.set_text(0, "Subchild1")
public override void _Ready()
{
var tree = new Tree();
TreeItem root = tree.CreateItem();
tree.HideRoot = true;
TreeItem child1 = tree.CreateItem(root);
TreeItem child2 = tree.CreateItem(root);
TreeItem subchild1 = tree.CreateItem(child1);
subchild1.SetText(0, "Subchild1");
}
To iterate over all the TreeItem objects in a Tree object, use TreeItem.get_next() and TreeItem.get_first_child() after getting the root through get_root(). You can use Object.free() on a TreeItem to remove it from the Tree.
Incremental search: Like ItemList and PopupMenu, Tree 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
|
||
|
||
|
||
|
||
clip_contents |
|
|
|
||
|
||
|
||
|
||
focus_mode |
|
|
|
||
|
||
|
||
|
||
|
Métodos
Propiedades del Tema
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Señales
button_clicked(item: TreeItem, column: int, id: int, mouse_button_index: int) 🔗
Emitida cuando se presiona un botón del árbol (véase TreeItem.add_button()).
cell_selected() 🔗
Emitida cuando se selecciona una celda.
check_propagated_to_item(item: TreeItem, column: int) 🔗
Emitida cuando se llama a TreeItem.propagate_check(). Conéctate a esta señal para procesar los elementos que se ven afectados cuando se invoca TreeItem.propagate_check(). El orden en que se procesarán los elementos afectados es el siguiente: el elemento que invocó el método, los hijos de ese elemento y, finalmente, los padres de ese elemento.
column_title_clicked(column: int, mouse_button_index: int) 🔗
Emitida cuando se hace clic en el título de una columna con @GlobalScope.MOUSE_BUTTON_LEFT o @GlobalScope.MOUSE_BUTTON_RIGHT.
custom_item_clicked(mouse_button_index: int) 🔗
Emitted when an item with TreeItem.CELL_MODE_CUSTOM is clicked with a mouse button.
custom_popup_edited(arrow_clicked: bool) 🔗
Emitida cuando se hace clic en una celda con la TreeItem.CELL_MODE_CUSTOM para ser editada.
empty_clicked(click_position: Vector2, mouse_button_index: int) 🔗
Emitida cuando se hace clic con un botón del ratón en el espacio vacío del árbol.
item_activated() 🔗
Emitida cuando se hace doble clic en un elemento, o se selecciona con un evento de entrada ui_accept (por ejemplo, usando Enter o Space en el teclado).
item_collapsed(item: TreeItem) 🔗
Emitted when an item is expanded or collapsed by clicking on the folding arrow or through code.
Note: Despite its name, this signal is also emitted when an item is expanded.
item_edited() 🔗
Emitida cuando se edita un artículo.
item_icon_double_clicked() 🔗
Emitida cuando se hace doble clic en el icono de un elemento. Para una señal que se emite cuando se hace doble clic en cualquier parte del elemento, véase item_activated.
item_mouse_selected(mouse_position: Vector2, mouse_button_index: int) 🔗
Emitida cuando se selecciona un elemento con un botón del ratón.
item_selected() 🔗
Emitida cuando se selecciona un elemento.
multi_selected(item: TreeItem, column: int, selected: bool) 🔗
Emitida en lugar de item_selected si select_mode está establecido en SELECT_MULTI.
nothing_selected() 🔗
Emitida cuando un clic con el botón izquierdo del ratón no selecciona ningún elemento.
Enumeraciones
enum SelectMode: 🔗
SelectMode SELECT_SINGLE = 0
Permite la selección de una sola celda a la vez. Desde la perspectiva de los items, sólo se permite seleccionar un único item. Y sólo hay una columna seleccionada en el item seleccionado.
El cursor de enfoque siempre está oculto en este modo, pero se posiciona en la selección actual, haciendo que el ítem actualmente seleccionado sea el ítem enfocado actualmente.
SelectMode SELECT_ROW = 1
Permite la selección de una sola fila a la vez. Desde el punto de vista de los artículos, sólo se permite seleccionar un único artículo. Y todas las columnas se seleccionan en el artículo seleccionado.
El cursor de enfoque siempre está oculto en este modo, pero se posiciona en la primera columna de la selección actual, haciendo que el elemento seleccionado sea el elemento enfocado actualmente.
SelectMode SELECT_MULTI = 2
Permite la selección de múltiples celdas al mismo tiempo. Desde la perspectiva de los artículos, se permite seleccionar múltiples artículos. Y puede haber múltiples columnas seleccionadas en cada elemento seleccionado.
El cursor de enfoque es visible en este modo, el ítem o columna bajo el cursor no está necesariamente seleccionado.
enum DropModeFlags: 🔗
DropModeFlags DROP_MODE_DISABLED = 0
Desactiva todas las secciones de caída, pero aún así permite detectar la sección de caída "en el artículo" por get_drop_section_at_position().
Nota: Esta es la flag por defecto, no tiene ningún efecto cuando se combina con otras flags.
DropModeFlags DROP_MODE_ON_ITEM = 1
Habilita la sección de entrega "en el artículo". Esta sección de entrega cubre todo el artículo.
Cuando se combina con DROP_MODE_INBETWEEN, esta sección de caída reduce a la mitad la altura y se mantiene centrada verticalmente.
DropModeFlags DROP_MODE_INBETWEEN = 2
Activa las secciones de caída "por encima del artículo" y "por debajo del artículo". La sección de caída "sobre el artículo" cubre la mitad superior del artículo, y la sección de caída "debajo del artículo" cubre la mitad inferior.
Cuando se combinan con DROP_MODE_ON_ITEM, estas secciones de caída reducen a la mitad la altura y se mantienen en la parte superior / inferior en consecuencia.
Descripciones de Propiedades
Si es true, la celda actualmente seleccionada puede ser seleccionada de nuevo.
bool allow_rmb_select = false 🔗
Si es true, un clic con el botón derecho del ratón puede seleccionar los elementos.
Si es true, permite navegar por el Tree con las teclas de letras a través de la búsqueda incremental.
If true, tree items with no tooltip assigned display their text as their tooltip. See also TreeItem.get_tooltip_text() and TreeItem.get_button_tooltip_text().
bool column_titles_visible = false 🔗
Si es true, los títulos de las columnas son visibles.
El número de columnas.
El modo de drop es una combinación OR de flags. Mira las constantes de DropModeFlags. Una vez que se realiza el drop, se revierte a DROP_MODE_DISABLED. Se recomienda establecer esto durante Control._can_drop_data().
Esto controla las secciones de drop, es decir, la decisión y el dibujo de las posibles ubicaciones de drop basadas en la posición del ratón.
bool enable_recursive_folding = true 🔗
Si es true, el plegado recursivo se habilita para este Tree. Mantener pulsado Shift mientras se hace clic en la flecha de plegado o usando los atajos ui_right/ui_left colapsa o expande el TreeItem y todos sus descendientes.
Si es true, la flecha de plegado está oculta.
Si es true, la raíz del árbol está oculta.
bool scroll_horizontal_enabled = true 🔗
Si es true, permite el desplazamiento horizontal.
bool scroll_vertical_enabled = true 🔗
Si es true, permite el desplazamiento vertical.
SelectMode select_mode = 0 🔗
void set_select_mode(value: SelectMode)
SelectMode get_select_mode()
Permite la selección simple o múltiple. Véase las constantes SelectMode.
Descripciones de Métodos
void clear() 🔗
Despeja el árbol. Esto elimina todos los elementos.
TreeItem create_item(parent: TreeItem = null, index: int = -1) 🔗
Crea un elemento en el árbol y lo añade como hijo de parent, que puede ser un TreeItem válido o null.
Si parent es null, el elemento raíz será el padre, o el nuevo elemento será la propia raíz si el árbol está vacío.
El nuevo ítem será el hijo index-ésimo del padre, o será el último hijo si no hay suficientes hermanos.
void deselect_all() 🔗
Deselecciona todos los elementos del árbol (filas y columnas). En el modo SELECT_MULTI también elimina el cursor de selección.
bool edit_selected(force_edit: bool = false) 🔗
Edita el elemento del árbol seleccionado como si se hubiera hecho clic en él.
El elemento debe establecerse como editable con TreeItem.set_editable() o force_edit debe ser true.
Devuelve true si el elemento se pudo editar. Falla si no se selecciona ningún elemento.
void ensure_cursor_is_visible() 🔗
Hace visible la célula actualmente enfocada.
Esto desplazará el árbol si es necesario. En el modo SELECT_ROW, esto no hará un scrolling horizontal, ya que todas las celdas de la fila seleccionada están enfocadas lógicamente.
Nota: A pesar del nombre de este método, el propio cursor de enfoque sólo es visible en el modo SELECT_MULTI.
int get_button_id_at_position(position: Vector2) const 🔗
Devuelve el ID del botón en position, o -1 si no hay ningún botón.
int get_column_at_position(position: Vector2) const 🔗
Devuelve el índice de la columna en position, o -1 si no hay ningún elemento.
int get_column_expand_ratio(column: int) const 🔗
Devuelve la relación de expansión asignada a la columna.
String get_column_title(column: int) const 🔗
Devuelve el título de la columna.
HorizontalAlignment get_column_title_alignment(column: int) const 🔗
Devuelve la alineación del título de la columna.
TextDirection get_column_title_direction(column: int) const 🔗
Devuelve la dirección base de escritura del título de la columna.
String get_column_title_language(column: int) const 🔗
Devuelve el código de idioma del título de la columna.
int get_column_width(column: int) const 🔗
Devuelve el ancho de la columna en píxeles.
Rect2 get_custom_popup_rect() const 🔗
Devuelve el rectángulo para los popups personalizados. Ayuda a crear controles de celda personalizados que muestran un popup. Véase TreeItem.set_cell_mode().
int get_drop_section_at_position(position: Vector2) const 🔗
Returns the drop section at position, or -100 if no item is there.
Values -1, 0, or 1 will be returned for the "above item", "on item", and "below item" drop sections, respectively. See DropModeFlags for a description of each drop section.
To get the item which the returned drop section is relative to, use get_item_at_position().
Returns the currently edited item. Can be used with item_edited to get the item that was modified.
func _ready():
$Tree.item_edited.connect(on_Tree_item_edited)
func on_Tree_item_edited():
print($Tree.get_edited()) # This item just got edited (e.g. checked).
public override void _Ready()
{
GetNode<Tree>("Tree").ItemEdited += OnTreeItemEdited;
}
public void OnTreeItemEdited()
{
GD.Print(GetNode<Tree>("Tree").GetEdited()); // This item just got edited (e.g. checked).
}
int get_edited_column() const 🔗
Devuelve la columna del elemento que se está editando actualmente.
Rect2 get_item_area_rect(item: TreeItem, column: int = -1, button_index: int = -1) const 🔗
Devuelve el área del rectángulo para el TreeItem especificado. Si se especifica column, solo se obtiene la posición y el tamaño de esa columna; de lo contrario, se obtiene el rectángulo que contiene todas las columnas. Si se especifica un índice de botón, se devolverá el rectángulo de ese botón.
TreeItem get_item_at_position(position: Vector2) const 🔗
Devuelve el elemento del árbol en la posición especificada (en relación con la posición de origen del árbol).
TreeItem get_next_selected(from: TreeItem) 🔗
Devuelve el siguiente TreeItem seleccionado después del dado, o null si se alcanza el final.
Si from es null, esto devuelve el primer elemento seleccionado.
int get_pressed_button() const 🔗
Devuelve el índice del último botón pulsado.
Devuelve el elemento raíz del árbol, o null si el árbol está vacío.
Devuelve la posición de scrolling actual.
TreeItem get_selected() const 🔗
Devuelve el elemento enfocado actualmente, o null si no hay ningún elemento enfocado.
En los modos SELECT_ROW y SELECT_SINGLE, el elemento enfocado es el mismo que el elemento seleccionado. En el modo SELECT_MULTI, el elemento enfocado es el elemento que se encuentra bajo el cursor de enfoque, no necesariamente seleccionado.
Para obtener el/los elemento(s) actualmente seleccionado(s), use get_next_selected().
int get_selected_column() const 🔗
Devuelve la columna actualmente enfocada, o -1 si no hay ninguna columna enfocada.
En el modo SELECT_SINGLE, la columna enfocada es la columna seleccionada. En el modo SELECT_ROW, la columna enfocada es siempre 0 si se selecciona algún elemento. En el modo SELECT_MULTI, la columna enfocada es la columna que se encuentra bajo el cursor de enfoque, y no hay necesariamente ninguna columna seleccionada.
Para saber si una columna de un elemento está seleccionada, utiliza TreeItem.is_selected().
bool is_column_clipping_content(column: int) const 🔗
Devuelve true si la columna tiene habilitado el recorte (véase set_column_clip_content()).
bool is_column_expanding(column: int) const 🔗
Devuelve true si la columna tiene habilitada la expansión (véase set_column_expand()).
void scroll_to_item(item: TreeItem, center_on_item: bool = false) 🔗
Hace que el Tree salte al TreeItem especificado.
void set_column_clip_content(column: int, enable: bool) 🔗
Permite activar el recorte para el contenido de la columna, ignorando el tamaño del contenido.
void set_column_custom_minimum_width(column: int, min_width: int) 🔗
Anula el ancho mínimo calculado de una columna. Puede establecerse a 0 para restaurar el comportamiento predeterminado. Las columnas que tienen el flag "Expandir" usarán su "min_width" de forma similar a Control.size_flags_stretch_ratio.
void set_column_expand(column: int, expand: bool) 🔗
Si es true, la columna tendrá el flag "Expandir" de Control. Las columnas que tienen el flag "Expandir" usarán su relación de expansión de forma similar a Control.size_flags_stretch_ratio (véase set_column_expand_ratio()).
void set_column_expand_ratio(column: int, ratio: int) 🔗
Establece la relación de expansión relativa para una columna. Véase set_column_expand().
void set_column_title(column: int, title: String) 🔗
Establece el título de una columna.
void set_column_title_alignment(column: int, title_alignment: HorizontalAlignment) 🔗
Establece la alineación del título de la columna. Ten en cuenta que @GlobalScope.HORIZONTAL_ALIGNMENT_FILL no es compatible con los títulos de las columnas.
void set_column_title_direction(column: int, direction: TextDirection) 🔗
Establece la dirección base de escritura del título de la columna.
void set_column_title_language(column: int, language: String) 🔗
Establece el código de idioma del título de la columna 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_selected(item: TreeItem, column: int) 🔗
Selecciona el TreeItem y la columna especificados.
Descripciones de las propiedades del tema
Color children_hl_line_color = Color(0.27, 0.27, 0.27, 1) 🔗
El Color de las líneas de relación entre el TreeItem seleccionado y sus hijos.
Color custom_button_font_highlight = Color(0.95, 0.95, 0.95, 1) 🔗
Texto Color para una celda de modo TreeItem.CELL_MODE_CUSTOM cuando el cursor esta encima.
Color drop_position_color = Color(1, 1, 1, 1) 🔗
Color usado para dibujar posibles lugares de caída. Ver las constantes DropModeFlags para una descripción más detallada de los lugares de caída.
Color font_color = Color(0.7, 0.7, 0.7, 1) 🔗
Color del texto predeterminado del elemento.
Color font_disabled_color = Color(0.875, 0.875, 0.875, 0.5) 🔗
Color del texto para una celda en modo TreeItem.CELL_MODE_CHECK cuando no es editable (ver TreeItem.set_editable()).
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_dimmed_color = Color(0.875, 0.875, 0.875, 1) 🔗
Color del texto utilizado cuando se pasa el cursor por encima del elemento, mientras que se pasa el cursor por encima de un botón del mismo elemento al mismo tiempo.
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 se selecciona el elemento.
Color guide_color = Color(0.7, 0.7, 0.7, 0.25) 🔗
Color de la guía.
Color parent_hl_line_color = Color(0.27, 0.27, 0.27, 1) 🔗
El Color de las líneas de relación entre el TreeItem seleccionado y sus padres.
Color relationship_line_color = Color(0.27, 0.27, 0.27, 1) 🔗
El Color predeterminado de las líneas de relación.
Color title_button_color = Color(0.875, 0.875, 0.875, 1) 🔗
Texto predeterminado Color del botón de título.
El espacio horizontal entre cada botón de una celda.
int children_hl_line_width = 1 🔗
El ancho de las líneas de relación entre el TreeItem seleccionado y sus hijos.
Dibuja las guías si no es cero, esto actúa como un booleano. La guia es una línea horizontal dibujada en la parte inferior de cada artículo.
int draw_relationship_lines = 0 🔗
Dibuja las líneas de relación si no es cero, esto actúa como un booleano. Las líneas de relación se dibujan al principio de los elementos hijos para mostrar la jerarquía.
El espacio horizontal entre las celdas de los artículos. También se utiliza como el margen al principio de un artículo cuando el plegado está desactivado.
El ancho máximo permitido del icono en las celdas del elemento. Este límite se aplica por encima del tamaño predeterminado del icono, pero antes del valor establecido con TreeItem.set_icon_max_width(). La altura se ajusta según la relación del icono.
int inner_item_margin_bottom = 0 🔗
El margen inferior interno de una celda.
int inner_item_margin_left = 0 🔗
El margen izquierdo interno de una celda.
int inner_item_margin_right = 0 🔗
El margen derecho interno de una celda.
int inner_item_margin_top = 0 🔗
El margen superior interno de una celda.
El margen horizontal al comienzo de un artículo. Se utiliza cuando el plegado está habilitado para el artículo.
The size of the text outline.
Note: If using a font with FontFile.multichannel_signed_distance_field enabled, its FontFile.msdf_pixel_range must be set to at least twice the value of outline_size for outline rendering to look correct. Otherwise, the outline may appear to be cut off earlier than intended.
int parent_hl_line_margin = 0 🔗
El espacio entre las líneas de relación del padre para el TreeItem seleccionado y las líneas de relación con sus hermanos que no están seleccionados.
int parent_hl_line_width = 1 🔗
El ancho de las líneas de relación entre el TreeItem seleccionado y sus padres.
int relationship_line_width = 1 🔗
El ancho predeterminado de las líneas de relación.
La distancia máxima entre el cursor del ratón y el borde del control para activar el desplazamiento del borde al arrastrar.
La velocidad del scrolling de la frontera.
int scrollbar_h_separation = 4 🔗
La separación horizontal del contenido del árbol y la barra de desplazamiento.
int scrollbar_margin_bottom = -1 🔗
El margen inferior de las barras de desplazamiento. Cuando es negativo, utiliza el margen inferior de panel.
int scrollbar_margin_left = -1 🔗
El margen izquierdo de la barra de desplazamiento horizontal. Cuando es negativo, usa el margen izquierdo de panel.
int scrollbar_margin_right = -1 🔗
El margen derecho de las barras de desplazamiento. Cuando es negativo, usa el margen derecho de panel.
int scrollbar_margin_top = -1 🔗
El margen superior de la barra de desplazamiento vertical. Cuando es negativo, usa el margen superior de panel.
int scrollbar_v_separation = 4 🔗
La separación vertical del contenido del árbol y la barra de desplazamiento.
El relleno vertical dentro de cada artículo, es decir, la distancia entre el contenido del artículo y el borde superior/inferior.
Font del texto del elemento.
Font del texto del título del botón.
Tamaño de la fuente del texto del elemento.
Tamaño de la fuente del texto del botón de título.
El icono de la flecha que se usa cuando un elemento plegable no está colapsado.
El icono de flecha que se utiliza cuando un elemento plegable está colapsado (para diseños de izquierda a derecha).
Texture2D arrow_collapsed_mirrored 🔗
El icono de flecha que se utiliza cuando un elemento plegable está colapsado (para diseños de derecha a izquierda).
El icono de verificación que se muestra cuando la celda en modo TreeItem.CELL_MODE_CHECK está marcada y es editable (véase TreeItem.set_editable()).
El icono de marca que se muestra cuando la celda en modo TreeItem.CELL_MODE_CHECK está marcada y no es editable (véase TreeItem.set_editable()).
El icono de marca que se muestra cuando la celda en modo TreeItem.CELL_MODE_CHECK está indeterminada y es editable (véase TreeItem.set_editable()).
Texture2D indeterminate_disabled 🔗
El icono de marca que se muestra cuando la celda en modo TreeItem.CELL_MODE_CHECK está indeterminada y no es editable (véase TreeItem.set_editable()).
El icono de la flecha que se muestra para la celda de modo TreeItem.CELL_MODE_RANGE.
El icono de marca que se muestra cuando la celda en modo TreeItem.CELL_MODE_CHECK está desmarcada y es editable (véase TreeItem.set_editable()).
Texture2D unchecked_disabled 🔗
El icono de marca que se muestra cuando la celda en modo TreeItem.CELL_MODE_CHECK está desmarcada y no es editable (véase TreeItem.set_editable()).
El icono de flecha arriba/abajo para mostrar el modo celda TreeItem.CELL_MODE_RANGE.
StyleBox utilizado cuando se pasa el ratón por encima de un botón en el árbol.
StyleBox usado cuando se pulsa un botón del árbol.
StyleBox usado para el cursor, cuando el Tree está siendo enfocado.
StyleBox usado para el cursor, cuando el Tree no está siendo enfocado.
StyleBox por defecto para una celda en modo TreeItem.CELL_MODE_CUSTOM cuando el botón está habilitado con TreeItem.set_custom_as_button().
StyleBox custom_button_hover 🔗
StyleBox para una celda de botón en modo TreeItem.CELL_MODE_CUSTOM cuando se pasa el ratón por encima.
StyleBox custom_button_pressed 🔗
StyleBox para una celda de botón en modo TreeItem.CELL_MODE_CUSTOM cuando se pulsa.
El estilo de enfoque para el Tree, dibujado por encima de todo.
StyleBox para el elemento sobre el que se pasa el ratón, pero no está seleccionado.
StyleBox para el elemento sobre el que se está pasando el ratón, mientras que un botón del mismo elemento también está siendo apuntado al mismo tiempo.
StyleBox para los elementos seleccionados y enfocados, utilizado cuando el Tree no está enfocado.
StyleBox hovered_selected_focus 🔗
StyleBox para los elementos seleccionados y enfocados, utilizado cuando el Tree está enfocado.
El estilo de fondo para el Tree.
StyleBox para los elementos seleccionados, utilizado cuando el Tree no está siendo enfocado.
StyleBox para los elementos seleccionados, usado cuando el Tree está siendo enfocado.
StyleBox usado cuando el cursor esta encima del botón del título.
StyleBox title_button_normal 🔗
Predeterminado StyleBox para el título del botón.
StyleBox title_button_pressed 🔗
StyleBox utilizado cuando se presiona el botón de título.