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.
Checking the stable version of the documentation...
Tree¶
Inherits: Control < CanvasItem < Node < Object
Control para mostrar un árbol de objetos.
Descripción¶
Esto muestra un árbol de objetos que pueden ser seleccionados, expandidos y colapsados. El árbol puede tener múltiples columnas con controles personalizados como edición de texto, botones y ventanas emergentes. Puede ser útil para mostrar e interactuar de forma estructurada.
Los árboles se construyen a través de código, usando objetos TreeItem para crear la estructura. Tienen una sola raíz pero se pueden simular múltiples raíces si se añade una raíz oculta ficticia.
func _ready():
var tree = Tree.new()
var root = tree.create_item()
tree.set_hide_root(true)
var child1 = tree.create_item(raíz)
var child2 = tree.create_item(raíz)
var subhijo1 = tree.create_item(hijo1)
subchild1.set_text(0, "Subchild1")
Para iterar sobre todos los objetos TreeItem de un objeto Tree
, usa TreeItem.get_next y TreeItem.get_children después de obtener la raíz a través de get_root. Puedes usar Object.free en un TreeItem para eliminarlo del Tree
.
Propiedades¶
|
||
|
||
|
||
|
||
|
||
focus_mode |
|
|
|
||
|
||
rect_clip_content |
|
|
|
Métodos¶
void |
clear ( ) |
create_item ( Object parent=null, int idx=-1 ) |
|
edit_selected ( ) |
|
void |
|
get_column_at_position ( Vector2 position ) const |
|
get_column_title ( int column ) const |
|
get_column_width ( int column ) const |
|
get_custom_popup_rect ( ) const |
|
get_drop_section_at_position ( Vector2 position ) const |
|
get_edited ( ) const |
|
get_edited_column ( ) const |
|
get_item_area_rect ( Object item, int column=-1 ) const |
|
get_item_at_position ( Vector2 position ) const |
|
get_next_selected ( Object from ) |
|
get_pressed_button ( ) const |
|
get_root ( ) |
|
get_scroll ( ) const |
|
get_selected ( ) const |
|
get_selected_column ( ) const |
|
void |
scroll_to_item ( Object item ) |
void |
set_column_expand ( int column, bool expand ) |
void |
set_column_min_width ( int column, int min_width ) |
void |
set_column_title ( int column, String title ) |
Propiedades del Theme¶
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Señales¶
Emitido cuando se presionó un botón del árbol (ver TreeItem.add_button).
cell_selected ( )
Emitido cuando se selecciona una celda.
column_title_pressed ( int column )
Se emite cuando se presiona el título de una columna.
custom_popup_edited ( bool arrow_clicked )
Se emite cuando se hace clic en una celda con la TreeItem.CELL_MODE_CUSTOM para ser editada.
empty_rmb ( Vector2 position )
Se emite cuando se presiona el botón derecho del ratón en el espacio vacío del árbol.
empty_tree_rmb_selected ( Vector2 position )
Se emite cuando se pulsa el botón derecho del ratón si la selección del botón derecho del ratón está activa y el árbol está vacío.
item_activated ( )
Se emite cuando se hace doble clic en la etiqueta de un artículo.
item_collapsed ( TreeItem item )
Se emite cuando un objeto se colapsa por un clic en la flecha de plegado.
item_custom_button_pressed ( )
Se emite cuando se pulsa un botón personalizado (es decir, en una celda de modo TreeItem.CELL_MODE_CUSTOM).
item_double_clicked ( )
Se emite cuando se hace doble clic en el icono de un elemento.
item_edited ( )
Emitido cuando se edita un artículo.
item_rmb_edited ( )
Se emite cuando se edita un elemento con el botón derecho del ratón.
item_rmb_selected ( Vector2 position )
Se emite cuando se selecciona un elemento con el botón derecho del ratón.
item_selected ( )
Emitido cuando se selecciona un elemento.
Emitido en lugar de item_selected
si select_mode
es SELECT_MULTI.
nothing_selected ( )
Emitido cuando un clic con el botón izquierdo del ratón no selecciona ningún elemento.
Enumeraciones¶
enum 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.
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.
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:
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.
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.
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¶
bool allow_reselect
Default |
|
Setter |
set_allow_reselect(value) |
Getter |
get_allow_reselect() |
Si true
, la celda actualmente seleccionada puede ser seleccionada de nuevo.
bool allow_rmb_select
Default |
|
Setter |
set_allow_rmb_select(value) |
Getter |
get_allow_rmb_select() |
Si true
, un clic con el botón derecho del ratón puede seleccionar los elementos.
bool column_titles_visible
Default |
|
Setter |
set_column_titles_visible(value) |
Getter |
are_column_titles_visible() |
Si true
, los títulos de las columnas son visibles.
int columns
Default |
|
Setter |
set_columns(value) |
Getter |
get_columns() |
El número de columnas.
int drop_mode_flags
Default |
|
Setter |
set_drop_mode_flags(value) |
Getter |
get_drop_mode_flags() |
El modo de caída como una combinación de flags OR. Ver las constantes de DropModeFlags. Una vez que se hace el drop, se vuelve a la constante DROP_MODE_DISABLED. Se recomienda configurar esto durante Control.can_drop_data.
Esto controla las secciones de caída, es decir, la decisión y el dibujo de las posibles ubicaciones de caída en función de la posición del ratón.
bool hide_folding
Default |
|
Setter |
set_hide_folding(value) |
Getter |
is_folding_hidden() |
Si true
, la flecha de plegado está oculta.
bool hide_root
Default |
|
Setter |
set_hide_root(value) |
Getter |
is_root_hidden() |
Si true
, la raíz del árbol está oculta.
SelectMode select_mode
Default |
|
Setter |
set_select_mode(value) |
Getter |
get_select_mode() |
Permite la selección simple o múltiple. Vea las constantes SelectMode.
Descripciones de Métodos¶
void clear ( )
Despeja el árbol. Esto elimina todos los elementos.
Crea un elemento en el árbol y lo añade como hijo de parent
.
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 idx
th hijo del padre, o será el último hijo si no hay suficientes hermanos.
bool edit_selected ( )
Edits the selected tree item as if it was clicked. The item must be set editable with TreeItem.set_editable. Returns true
if the item could be edited. Fails if no item is selected.
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.
Devuelve el índice de la columna en la position
, o -1 si no hay ningún elemento.
Devuelve el título de la columna.
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. Ver TreeItem.set_cell_mode.
Devuelve la sección de caída en la position
, o -100 si no hay ningún elemento.
Se devolverán los valores -1, 0, o 1 para las secciones de caída "por encima del artículo", "sobre el artículo", y "por debajo del artículo", respectivamente. Véase DropModeFlags para una descripción de cada sección de caída.
Para obtener el elemento con el que la sección de drop devuelta es relativa, usa get_item_at_position.
TreeItem get_edited ( ) const
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).
int get_edited_column ( ) const
Returns the column for the currently edited item.
Devuelve el área del rectángulo para el artículo especificado. Si se especifica column
, sólo 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.
Devuelve el elemento del árbol en la posición especificada (en relación con la posición de origen del árbol).
Devuelve el siguiente elemento 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.
TreeItem get_root ( )
Devuelve el elemento raíz del árbol, o null
si el árbol está vacío.
Vector2 get_scroll ( ) const
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, utilice el TreeItem.is_selected.
void scroll_to_item ( Object item )
Causes the Tree
to jump to the specified item.
Si true
, la columna tendrá la flag "Expandir" de Control. Las columnas que tienen la flag "Expandir" usarán su "min_width" de forma similar a Control.size_flags_stretch_ratio.
Establece el ancho mínimo de una columna. Las columnas que tienen la flag "Expandir" usarán su "ancho mínimo" de manera similar a Control.size_flags_stretch_ratio.
Establece el título de una columna.
Theme Property Descriptions¶
Color custom_button_font_highlight
Default |
|
Texto Color para una celda de modo TreeItem.CELL_MODE_CUSTOM cuando el cursor esta encima.
Color drop_position_color
Default |
|
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
Default |
|
Color del texto predeterminado del elemento.
Color font_color_selected
Default |
|
Color del texto utilizado cuando se selecciona el elemento.
Color guide_color
Default |
|
Color de la guía.
Color relationship_line_color
Default |
|
Color de las líneas de relación.
Color title_button_color
Default |
|
Texto predeterminado Color del botón de título.
int button_margin
Default |
|
El espacio horizontal entre cada botón de una celda.
int draw_guides
Default |
|
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
Default |
|
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.
int hseparation
Default |
|
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.
int item_margin
Default |
|
El margen horizontal al comienzo de un artículo. Se utiliza cuando el plegado está habilitado para el artículo.
int scroll_border
Default |
|
La distancia máxima entre el cursor del ratón y el borde del control para activar el desplazamiento del borde al arrastrar.
int scroll_speed
Default |
|
La velocidad del scrolling de la frontera.
int vseparation
Default |
|
El relleno vertical dentro de cada artículo, es decir, la distancia entre el contenido del artículo y el borde superior/inferior.
Font font
Font del texto del elemento.
Font title_button_font
Font del texto del título del botón.
Texture arrow
El icono de la flecha que se usa cuando un elemento plegable no está colapsado.
Texture arrow_collapsed
El icono de la flecha que se utiliza cuando un elemento plegable se derrumba.
Texture checked
El icono de comprobación que se muestra cuando se comprueba la celda de modo TreeItem.CELL_MODE_CHECK.
Texture select_arrow
El icono de la flecha que se muestra para la celda de modo TreeItem.CELL_MODE_RANGE.
Texture unchecked
El icono de verificación que se muestra cuando la celda de modo TreeItem.CELL_MODE_CHECK está desmarcada.
Texture updown
El icono de flecha arriba/abajo para mostrar el modo celda TreeItem.CELL_MODE_RANGE.
StyleBox bg
Por defecto StyleBox para el Tree
, es decir, se utiliza cuando el control no está siendo enfocado.
StyleBox bg_focus
StyleBox usado cuando el Tree
está siendo enfocado.
StyleBox button_pressed
StyleBox usado cuando se pulsa un botón del árbol.
StyleBox cursor
StyleBox usado para el cursor, cuando el Tree
está siendo enfocado.
StyleBox cursor_unfocused
StyleBox usado para el cursor, cuando el Tree
no está siendo enfocado.
StyleBox custom_button
Por defecto StyleBox para una celda de modo TreeItem.CELL_MODE_CUSTOM.
StyleBox custom_button_hover
StyleBox para un TreeItem.CELL_MODE_CUSTOM cuando el cursor esta encima.
StyleBox custom_button_pressed
StyleBox para una celda de modo TreeItem.CELL_MODE_CUSTOM cuando se presiona.
StyleBox selected
StyleBox para los elementos seleccionados, utilizado cuando el Tree
no está siendo enfocado.
StyleBox selected_focus
StyleBox para los elementos seleccionados, usado cuando el Tree
está siendo enfocado.
StyleBox title_button_hover
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.