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.

Control

Hereda: CanvasItem < Node < Object

Heredado por: BaseButton, ColorRect, Container, GraphEdit, ItemList, Label, LineEdit, MenuBar, NinePatchRect, Panel, Range, ReferenceRect, RichTextLabel, Separator, TabBar, TextEdit, TextureRect, Tree, VideoStreamPlayer, VirtualJoystick

Clase base para todos los controles de GUI. Adapta su posición y tamaño basándose en su control padre.

Descripción

Clase base para todos los nodos relacionados con la interfaz de usuario. Control cuenta con un rectángulo delimitador que define sus extensiones, una posición de anclaje relativa a su control padre o al viewport actual, y desplazamientos relativos al anclaje. Los desplazamientos se actualizan automáticamente cuando el nodo, cualquiera de sus padres o el tamaño de la pantalla cambian.

Para más información sobre el sistema de UI de Godot, anclajes, desplazamientos y contenedores, consulta los tutoriales relacionados en el manual. Para construir interfaces de usuario flexibles, necesitarás una mezcla de elementos de UI que hereden de nodos Control y Container.

Nota: Dado que tanto Node2D como Control heredan de CanvasItem, comparten varios conceptos de la clase, como las propiedades CanvasItem.z_index y CanvasItem.visible.

Nodos de interfaz de usuario y entrada

Godot propaga los eventos de entrada a través de los viewports. Cada Viewport es responsable de propagar los InputEvent a sus nodos hijos. Como SceneTree.root es una Window, esto ya ocurre automáticamente para todos los elementos de UI en tu juego.

Los eventos de entrada se propagan a través del SceneTree desde el nodo raíz a todos los nodos hijos llamando a Node._input(). Para los elementos de UI específicamente, tiene más sentido sobrescribir el método virtual _gui_input(), que filtra los eventos de entrada no relacionados, como verificando el orden z, mouse_filter, el foco, o si el evento estaba dentro del cuadro delimitador del control.

Llama a accept_event() para que ningún otro nodo reciba el evento. Una vez que aceptas una entrada, esta se marca como manejada, por lo que Node._unhandled_input() no la procesará.

Solo un nodo Control puede tener el foco. Solo el nodo con el foco recibirá eventos. Para obtener el foco, llama a grab_focus(). Los nodos Control pierden el foco cuando otro nodo lo toma, o si ocultas el nodo que tiene el foco. El foco no se representará visualmente si se obtiene mediante entrada de ratón/táctil, solo aparecerá con entrada de teclado/gamepad (para accesibilidad), o mediante grab_focus().

Establece mouse_filter en MOUSE_FILTER_IGNORE para indicar a un nodo Control que ignore los eventos de ratón o táctiles. Lo necesitarás si colocas un icono encima de un botón.

Los recursos Theme cambian la apariencia del control. El theme de un nodo Control afecta a todos sus hijos directos e indirectos (siempre que una cadena de controles no esté interrumpida). Para anular algunos de los elementos del tema, llama a uno de los métodos add_theme_*_override, como add_theme_font_override(). También puedes anular elementos del tema en el Inspector.

Nota: Los elementos del tema no son propiedades de Object. Esto significa que no puedes acceder a sus valores usando Object.get() y Object.set(). En su lugar, usa los métodos get_theme_* y add_theme_*_override proporcionados por esta clase.

Tutoriales

Propiedades

Array[NodePath]

accessibility_controls_nodes

[]

Array[NodePath]

accessibility_described_by_nodes

[]

String

accessibility_description

""

Array[NodePath]

accessibility_flow_to_nodes

[]

Array[NodePath]

accessibility_labeled_by_nodes

[]

AccessibilityLiveMode

accessibility_live

0

String

accessibility_name

""

float

anchor_bottom

0.0

float

anchor_left

0.0

float

anchor_right

0.0

float

anchor_top

0.0

bool

auto_translate

bool

clip_contents

false

Vector2

custom_maximum_size

Vector2(-1, -1)

Vector2

custom_minimum_size

Vector2(0, 0)

FocusBehaviorRecursive

focus_behavior_recursive

0

FocusMode

focus_mode

0

NodePath

focus_neighbor_bottom

NodePath("")

NodePath

focus_neighbor_left

NodePath("")

NodePath

focus_neighbor_right

NodePath("")

NodePath

focus_neighbor_top

NodePath("")

NodePath

focus_next

NodePath("")

NodePath

focus_previous

NodePath("")

Vector2

global_position

GrowDirection

grow_horizontal

1

GrowDirection

grow_vertical

1

LayoutDirection

layout_direction

0

bool

localize_numeral_system

true

MouseBehaviorRecursive

mouse_behavior_recursive

0

CursorShape

mouse_default_cursor_shape

0

MouseFilter

mouse_filter

0

bool

mouse_force_pass_scroll_events

true

float

offset_bottom

0.0

float

offset_left

0.0

float

offset_right

0.0

float

offset_top

0.0

bool

offset_transform_enabled

false

Vector2

offset_transform_pivot

Vector2(0, 0)

Vector2

offset_transform_pivot_ratio

Vector2(0.5, 0.5)

Vector2

offset_transform_position

Vector2(0, 0)

Vector2

offset_transform_position_ratio

Vector2(0, 0)

float

offset_transform_rotation

0.0

Vector2

offset_transform_scale

Vector2(1, 1)

bool

offset_transform_visual_only

true

PhysicsInterpolationMode

physics_interpolation_mode

2 (overrides Node)

Vector2

pivot_offset

Vector2(0, 0)

Vector2

pivot_offset_ratio

Vector2(0, 0)

Vector2

position

Vector2(0, 0)

bool

propagate_maximum_size

false

float

rotation

0.0

float

rotation_degrees

Vector2

scale

Vector2(1, 1)

Node

shortcut_context

Vector2

size

Vector2(0, 0)

BitField[SizeFlags]

size_flags_horizontal

1

float

size_flags_stretch_ratio

1.0

BitField[SizeFlags]

size_flags_vertical

1

Theme

theme

StringName

theme_type_variation

&""

AutoTranslateMode

tooltip_auto_translate_mode

0

String

tooltip_text

""

StringName

translation_context

&""

Métodos

String

_accessibility_get_contextual_info() virtual const

bool

_can_drop_data(at_position: Vector2, data: Variant) virtual const

void

_drop_data(at_position: Vector2, data: Variant) virtual

String

_get_accessibility_container_name(node: Node) virtual const

int

_get_cursor_shape(at_position: Vector2) virtual const

Variant

_get_drag_data(at_position: Vector2) virtual

Vector2

_get_maximum_size() virtual const

Vector2

_get_minimum_size() virtual const

String

_get_tooltip(at_position: Vector2) virtual const

AutoTranslateMode

_get_tooltip_auto_translate_mode_at(at_position: Vector2) virtual const

void

_gui_input(event: InputEvent) virtual

bool

_has_point(point: Vector2) virtual const

Object

_make_custom_tooltip(for_text: String) virtual const

Array[Vector3i]

_structured_text_parser(args: Array, text: String) virtual const

void

accept_event()

void

accessibility_drag()

void

accessibility_drop()

void

add_theme_color_override(name: StringName, color: Color)

void

add_theme_constant_override(name: StringName, constant: int)

void

add_theme_font_override(name: StringName, font: Font)

void

add_theme_font_size_override(name: StringName, font_size: int)

void

add_theme_icon_override(name: StringName, texture: Texture2D)

void

add_theme_stylebox_override(name: StringName, stylebox: StyleBox)

void

begin_bulk_theme_override()

void

end_bulk_theme_override()

Control

find_next_valid_focus() const

Control

find_prev_valid_focus() const

Control

find_valid_focus_neighbor(side: Side) const

void

force_drag(data: Variant, preview: Control)

float

get_anchor(side: Side) const

Vector2

get_begin() const

Vector2

get_bound_minimum_size() const

Vector2

get_combined_maximum_size() const

Vector2

get_combined_minimum_size() const

Vector2

get_combined_pivot_offset() const

CursorShape

get_cursor_shape(at_position: Vector2 = Vector2(0, 0)) const

Vector2

get_end() const

FocusMode

get_focus_mode_with_override() const

NodePath

get_focus_neighbor(side: Side) const

Rect2

get_global_rect() const

Vector2

get_maximum_size() const

Vector2

get_minimum_size() const

MouseFilter

get_mouse_filter_with_override() const

float

get_offset(offset: Side) const

Vector2

get_parent_area_size() const

Control

get_parent_control() const

Rect2

get_rect() const

Vector2

get_screen_position() const

Color

get_theme_color(name: StringName, theme_type: StringName = &"") const

int

get_theme_constant(name: StringName, theme_type: StringName = &"") const

float

get_theme_default_base_scale() const

Font

get_theme_default_font() const

int

get_theme_default_font_size() const

Font

get_theme_font(name: StringName, theme_type: StringName = &"") const

int

get_theme_font_size(name: StringName, theme_type: StringName = &"") const

Texture2D

get_theme_icon(name: StringName, theme_type: StringName = &"") const

StyleBox

get_theme_stylebox(name: StringName, theme_type: StringName = &"") const

String

get_tooltip(at_position: Vector2 = Vector2(0, 0)) const

void

grab_click_focus()

void

grab_focus(hide_focus: bool = false)

bool

has_focus(ignore_hidden_focus: bool = false) const

bool

has_theme_color(name: StringName, theme_type: StringName = &"") const

bool

has_theme_color_override(name: StringName) const

bool

has_theme_constant(name: StringName, theme_type: StringName = &"") const

bool

has_theme_constant_override(name: StringName) const

bool

has_theme_font(name: StringName, theme_type: StringName = &"") const

bool

has_theme_font_override(name: StringName) const

bool

has_theme_font_size(name: StringName, theme_type: StringName = &"") const

bool

has_theme_font_size_override(name: StringName) const

bool

has_theme_icon(name: StringName, theme_type: StringName = &"") const

bool

has_theme_icon_override(name: StringName) const

bool

has_theme_stylebox(name: StringName, theme_type: StringName = &"") const

bool

has_theme_stylebox_override(name: StringName) const

bool

is_drag_successful() const

bool

is_layout_rtl() const

void

release_focus()

void

remove_theme_color_override(name: StringName)

void

remove_theme_constant_override(name: StringName)

void

remove_theme_font_override(name: StringName)

void

remove_theme_font_size_override(name: StringName)

void

remove_theme_icon_override(name: StringName)

void

remove_theme_stylebox_override(name: StringName)

void

reset_size()

void

set_anchor(side: Side, anchor: float, keep_offset: bool = false, push_opposite_anchor: bool = true)

void

set_anchor_and_offset(side: Side, anchor: float, offset: float, push_opposite_anchor: bool = false)

void

set_anchors_and_offsets_preset(preset: LayoutPreset, resize_mode: LayoutPresetMode = 0, margin: int = 0)

void

set_anchors_preset(preset: LayoutPreset, keep_offsets: bool = false)

void

set_begin(position: Vector2)

void

set_drag_forwarding(drag_func: Callable, can_drop_func: Callable, drop_func: Callable)

void

set_drag_preview(control: Control)

void

set_end(position: Vector2)

void

set_focus_neighbor(side: Side, neighbor: NodePath)

void

set_global_position(position: Vector2, keep_offsets: bool = false)

void

set_offset(side: Side, offset: float)

void

set_offsets_preset(preset: LayoutPreset, resize_mode: LayoutPresetMode = 0, margin: int = 0)

void

set_position(position: Vector2, keep_offsets: bool = false)

void

set_size(size: Vector2, keep_offsets: bool = false)

void

update_maximum_size()

void

update_minimum_size()

void

warp_mouse(position: Vector2)


Señales

focus_entered() 🔗

Emitida cuando el nodo obtiene el foco.


focus_exited() 🔗

Emitida cuando el nodo pierde el foco.


gui_input(event: InputEvent) 🔗

Emitida cuando el nodo recibe un InputEvent.


maximum_size_changed() 🔗

Emitted when the node's maximum size changes.


minimum_size_changed() 🔗

Emitida cuando el tamaño mínimo del nodo cambia.


mouse_entered() 🔗

Emitted when the mouse cursor enters the control's (or any child control's) visible area, that is not occluded behind other Controls or Windows, provided its mouse_filter lets the event reach it and regardless if it's currently focused or not.

Note: CanvasItem.z_index doesn't affect, which Control receives the signal.


mouse_exited() 🔗

Emitted when the mouse cursor leaves the control's (and all child control's) visible area, that is not occluded behind other Controls or Windows, provided its mouse_filter lets the event reach it and regardless if it's currently focused or not.

Note: CanvasItem.z_index doesn't affect, which Control receives the signal.

Note: If you want to check whether the mouse truly left the area, ignoring any top nodes, you can use code like this:

func _on_mouse_exited():
    if not Rect2(Vector2(), size).has_point(get_local_mouse_position()):
        # Not hovering over area.

resized() 🔗

Emitida cuando el control cambia de tamaño.


size_flags_changed() 🔗

Emitida cuando una de las flags de tamaño cambia. Véase size_flags_horizontal y size_flags_vertical.


theme_changed() 🔗

Emitida cuando se envía la notificación NOTIFICATION_THEME_CHANGED.


Enumeraciones

enum FocusMode: 🔗

FocusMode FOCUS_NONE = 0

El nodo no puede captar el foco. Usar con focus_mode.

FocusMode FOCUS_CLICK = 1

El nodo sólo puede captar el foco en los clics del ratón. Usar con focus_mode.

FocusMode FOCUS_ALL = 2

El nodo puede tomar el foco al hacer clic con el ratón, usando las flechas y las teclas Tab en el teclado, o usando los botones D-pad en un gamepad. Usar con focus_mode.

FocusMode FOCUS_ACCESSIBILITY = 3

El nodo solo puede captar el foco cuando el lector de pantalla está activo. Usar con focus_mode.


enum FocusBehaviorRecursive: 🔗

FocusBehaviorRecursive FOCUS_BEHAVIOR_INHERITED = 0

Hereda el focus_behavior_recursive del control padre. Si no hay un control padre, es lo mismo que FOCUS_BEHAVIOR_ENABLED.

FocusBehaviorRecursive FOCUS_BEHAVIOR_DISABLED = 1

Evita que el control reciba el foco. get_focus_mode_with_override() devolverá FOCUS_NONE.

FocusBehaviorRecursive FOCUS_BEHAVIOR_ENABLED = 2

Permite que el control reciba el foco, dependiendo del focus_mode. Esto se puede usar para ignorar el focus_behavior_recursive del padre. get_focus_mode_with_override() devolverá el focus_mode.


enum MouseBehaviorRecursive: 🔗

MouseBehaviorRecursive MOUSE_BEHAVIOR_INHERITED = 0

Hereda el mouse_behavior_recursive del control padre. Si no hay un control padre, es lo mismo que MOUSE_BEHAVIOR_ENABLED.

MouseBehaviorRecursive MOUSE_BEHAVIOR_DISABLED = 1

Evita que el control reciba entradas del ratón. get_mouse_filter_with_override() devolverá MOUSE_FILTER_IGNORE.

MouseBehaviorRecursive MOUSE_BEHAVIOR_ENABLED = 2

Allows the control to receive mouse input, depending on the mouse_filter. This can be used to ignore the parent's mouse_behavior_recursive. get_mouse_filter_with_override() will return the mouse_filter.


enum CursorShape: 🔗

CursorShape CURSOR_ARROW = 0

Mostrar el cursor del ratón de la flecha del sistema cuando el usuario pasa por encima del nodo. Usar con mouse_default_cursor_shape.

CursorShape CURSOR_IBEAM = 1

Muestra el cursor del ratón del sistema I-beam cuando el usuario pasa por encima del nodo. El puntero del I-beam tiene una forma similar a la de la "I". Le dice al usuario que puede resaltar o insertar texto.

CursorShape CURSOR_POINTING_HAND = 2

Muestra el cursor del ratón de la mano del sistema cuando el usuario pasa por encima del nodo.

CursorShape CURSOR_CROSS = 3

Muestra el cursor cruzado del ratón del sistema cuando el usuario pasa por encima del nodo.

CursorShape CURSOR_WAIT = 4

Muestra el cursor del ratón de espera del sistema cuando el usuario pasa por encima del nodo. A menudo un reloj de arena.

CursorShape CURSOR_BUSY = 5

Muestra el cursor del ratón ocupado del sistema cuando el usuario pasa por encima del nodo. A menudo una flecha con un pequeño reloj de arena.

CursorShape CURSOR_DRAG = 6

Muestra el cursor del ratón de arrastre del sistema, a menudo un puño cerrado o un símbolo de cruz, cuando el usuario pasa por encima del nodo. Le dice al usuario que está arrastrando un elemento, como un nodo en el Dock de la escena.

CursorShape CURSOR_CAN_DROP = 7

Muestra el cursor del ratón del sistema cuando el usuario pasa por encima del nodo. Puede ser una mano abierta. Le dice al usuario que puede soltar un elemento que está agarrando, como un nodo en el Dock de la escena.

CursorShape CURSOR_FORBIDDEN = 8

Muestra el cursor del ratón prohibido del sistema cuando el usuario pasa por encima del nodo. A menudo un círculo cruzado.

CursorShape CURSOR_VSIZE = 9

Muestra el cursor del ratón de tamaño vertical del sistema cuando el usuario pasa por encima del nodo. Una flecha vertical de doble punta. Le dice al usuario que puede cambiar el tamaño de la ventana o del panel verticalmente.

CursorShape CURSOR_HSIZE = 10

Muestra el cursor del ratón de tamaño horizontal del sistema cuando el usuario pasa por encima del nodo. Una flecha horizontal de doble punta. Le dice al usuario que puede cambiar el tamaño de la ventana o del panel horizontalmente.

CursorShape CURSOR_BDIAGSIZE = 11

Muestra el cursor de cambio de tamaño de la ventana del sistema del ratón cuando el usuario pasa por encima del nodo. El cursor es una flecha de doble punta que va de abajo a la izquierda a arriba a la derecha. Le dice al usuario que puede cambiar el tamaño de la ventana o del panel tanto horizontal como verticalmente.

CursorShape CURSOR_FDIAGSIZE = 12

Muestra el cursor del cambio de tamaño de la ventana del sistema cuando el usuario pasa por encima del nodo. El cursor es una flecha de doble punta que va de arriba a la izquierda a abajo a la derecha, lo opuesto a CURSOR_BDIAGSIZE. Le dice al usuario que puede cambiar el tamaño de la ventana o del panel tanto horizontal como verticalmente.

CursorShape CURSOR_MOVE = 13

Muestra el cursor del ratón del sistema cuando el usuario pasa por encima del nodo. Muestra 2 flechas de doble cabeza en un ángulo de 90 grados. Le dice al usuario que puede mover libremente un elemento de la interfaz de usuario.

CursorShape CURSOR_VSPLIT = 14

Muestra el cursor del ratón dividido verticalmente del sistema cuando el usuario pasa por encima del nodo. En Windows, es lo mismo que CURSOR_VSIZE.

CursorShape CURSOR_HSPLIT = 15

Muestra el cursor del ratón dividido horizontalmente del sistema cuando el usuario pasa por encima del nodo. En Windows, es lo mismo que CURSOR_HSIZE.

CursorShape CURSOR_HELP = 16

Mostrar el cursor del ratón de ayuda del sistema cuando el usuario pasa por encima del nodo, un signo de interrogación.


enum LayoutPreset: 🔗

LayoutPreset PRESET_TOP_LEFT = 0

Pone las cuatro anclas en la parte superior izquierda de los límites del control parental. Usar con set_anchors_preset().

LayoutPreset PRESET_TOP_RIGHT = 1

Pone las cuatro anclas en la parte superior derecha de los límites del control parental. Usar con set_anchors_preset().

LayoutPreset PRESET_BOTTOM_LEFT = 2

Pone las cuatro anclas en la parte inferior izquierda de los límites del control parental. Usar con set_anchors_preset().

LayoutPreset PRESET_BOTTOM_RIGHT = 3

Pone las cuatro anclas en la parte inferior derecha de los límites del control parental. Usar con set_anchors_preset().

LayoutPreset PRESET_CENTER_LEFT = 4

Pone las 4 anclas en el centro del borde izquierdo de los límites del control parental. Usar con set_anchors_preset().

LayoutPreset PRESET_CENTER_TOP = 5

Pone las 4 anclas en el centro del borde superior de los límites del control parental. Usar con set_anchors_preset().

LayoutPreset PRESET_CENTER_RIGHT = 6

Pone las 4 anclas en el centro del borde derecho de los límites del control parental. Usar con set_anchors_preset().

LayoutPreset PRESET_CENTER_BOTTOM = 7

Pone las 4 anclas en el centro del borde inferior de los límites del control parental. Usar con set_anchors_preset().

LayoutPreset PRESET_CENTER = 8

Pone las cuatro anclas en el centro de los límites del control parental. Usar con set_anchors_preset().

LayoutPreset PRESET_LEFT_WIDE = 9

Ancla las 4 anclas al borde izquierdo del control padre. El margen izquierdo se vuelve relativo al borde izquierdo y el margen superior relativo a la esquina superior izquierda del control padre. Usar con set_anchors_preset().

LayoutPreset PRESET_TOP_WIDE = 10

Ancla las 4 anclas al borde superior del control padre. El margen izquierdo se vuelve relativo a la esquina superior izquierda, el margen superior relativo al borde superior, y el margen derecho relativo a la esquina superior derecha del control padre. Usar con set_anchors_preset().

LayoutPreset PRESET_RIGHT_WIDE = 11

Ancla las 4 anclas al borde derecho del control padre. El margen derecho se vuelve relativo al borde derecho y el margen superior relativo a la esquina superior derecha del control padre. Usar con set_anchors_preset().

LayoutPreset PRESET_BOTTOM_WIDE = 12

Ancla las 4 anclas al borde inferior del control padre. El margen izquierdo se vuelve relativo a la esquina inferior izquierda, el margen inferior relativo al borde inferior, y el margen derecho relativo a la esquina inferior derecha del control padre. Usar con set_anchors_preset().

LayoutPreset PRESET_VCENTER_WIDE = 13

Pone las 4 anclas en una línea vertical que corta el control parental por la mitad. Usar con set_anchors_preset().

LayoutPreset PRESET_HCENTER_WIDE = 14

Pone las 4 anclas en una línea horizontal que corta el control parental por la mitad. Usar con set_anchors_preset().

LayoutPreset PRESET_FULL_RECT = 15

Ancla las 4 anclas a las esquinas respectivas del control padre. Establezca los 4 márgenes a 0 después de aplicar este preajuste y el Control se ajustará a su control padre. Usar con set_anchors_preset().


enum LayoutPresetMode: 🔗

LayoutPresetMode PRESET_MODE_MINSIZE = 0

El control será redimensionado a su tamaño mínimo.

LayoutPresetMode PRESET_MODE_KEEP_WIDTH = 1

El ancho del control no cambiará.

LayoutPresetMode PRESET_MODE_KEEP_HEIGHT = 2

La altura del control no cambiará.

LayoutPresetMode PRESET_MODE_KEEP_SIZE = 3

El tamaño del control no cambiará.


flags SizeFlags: 🔗

SizeFlags SIZE_SHRINK_BEGIN = 0

Le dice al Container padre que alinee el nodo con su inicio, ya sea el borde superior o el izquierdo. Es mutuamente exclusivo con SIZE_FILL y otras flags de tamaño de encogimiento, pero puede usarse con SIZE_EXPAND en algunos contenedores. Usar con size_flags_horizontal y size_flags_vertical.

Nota: Establecer esta flag es igual a no tener ninguna flag de tamaño.

SizeFlags SIZE_FILL = 1

Le dice al Container padre que expanda los límites de este nodo para llenar todo el espacio disponible sin empujar a ningún otro nodo. Es mutuamente exclusivo con las flags de tamaño de encogimiento. Usar con size_flags_horizontal y size_flags_vertical.

SizeFlags SIZE_EXPAND = 2

Le dice al padre Container que deje que este nodo tome todo el espacio disponible en el eje que marque. Si varios nodos vecinos están configurados para expandirse, compartirán el espacio basado en su relación de estiramiento. Véase size_flags_stretch_ratio. Utilízalo con size_flags_horizontal y size_flags_vertical.

SizeFlags SIZE_EXPAND_FILL = 3

Establece las flags de tamaño del nodo tanto para rellenar como para expandir. Véase SIZE_FILL y SIZE_EXPAND para más información.

SizeFlags SIZE_SHRINK_CENTER = 4

Le dice al Container padre que centre el nodo en el espacio disponible. Es mutuamente exclusivo con SIZE_FILL y otras flags de tamaño de encogimiento, pero puede usarse con SIZE_EXPAND en algunos contenedores. Usar con size_flags_horizontal y size_flags_vertical.

SizeFlags SIZE_SHRINK_END = 8

Le dice al Container padre que alinee el nodo con su final, ya sea el borde inferior o el derecho. Es mutuamente exclusivo con SIZE_FILL y otras flags de tamaño de encogimiento, pero puede usarse con SIZE_EXPAND en algunos contenedores. Usar con size_flags_horizontal y size_flags_vertical.


enum MouseFilter: 🔗

MouseFilter MOUSE_FILTER_STOP = 0

El control recibirá los eventos de entrada de movimiento del ratón y los eventos de entrada del botón del ratón si se hace clic en él a través de _gui_input(). El control también recibirá las señales mouse_entered y mouse_exited. Estos eventos se marcan automáticamente como manejados, y no se propagarán más a otros controles. Esto también resulta en el bloqueo de señales en otros controles.

MouseFilter MOUSE_FILTER_PASS = 1

The control will receive mouse movement input events and mouse button input events if clicked on through _gui_input(). The control will also receive the mouse_entered and mouse_exited signals.

If this control does not handle the event, the event will propagate up to its parent control if it has one. The event is bubbled up the node hierarchy until it reaches a non-CanvasItem, a control with MOUSE_FILTER_STOP, or a CanvasItem with CanvasItem.top_level enabled. This will allow signals to fire in all controls it reaches. If no control handled it, the event will be passed to Node._shortcut_input() for further processing.

MouseFilter MOUSE_FILTER_IGNORE = 2

El control no recibirá ningún evento de entrada de movimiento del ratón ni eventos de entrada del botón del ratón a través de _gui_input(). El control tampoco recibirá las señales mouse_entered ni mouse_exited. Esto no bloqueará a otros controles para que no reciban estos eventos o para que no activen las señales. Los eventos ignorados no se manejarán automáticamente. Si un hijo tiene MOUSE_FILTER_PASS y se ha pasado un evento a este control, el evento se propagará aún más hasta el padre del control.

Nota: Si el control ha recibido mouse_entered pero no mouse_exited, cambiar el mouse_filter a MOUSE_FILTER_IGNORE hará que se emita mouse_exited.


enum GrowDirection: 🔗

GrowDirection GROW_DIRECTION_BEGIN = 0

El control crecerá hacia la izquierda o hacia arriba para compensar si su tamaño mínimo se cambia para que sea mayor que su tamaño actual en el eje respectivo.

GrowDirection GROW_DIRECTION_END = 1

El control crecerá hacia la derecha o hacia abajo para compensar si su tamaño mínimo se cambia para que sea mayor que su tamaño actual en el eje respectivo.

GrowDirection GROW_DIRECTION_BOTH = 2

El control crecerá en ambas direcciones por igual para compensar si su tamaño mínimo se cambia para que sea mayor que su tamaño actual.


enum Anchor: 🔗

Anchor ANCHOR_BEGIN = 0

Encaja uno de los 4 lados del ancla en el origen del nodo Rect, en la parte superior izquierda. Úsalo con una de las variables miembro anchor_*, como anchor_left. Para cambiar las 4 anclas a la vez, usa set_anchors_preset().

Anchor ANCHOR_END = 1

Pone uno de los 4 lados del ancla al final del nodo Rect, en la parte inferior derecha. Úsalo con una de las variables miembros anchor_*, como anchor_left. Para cambiar las 4 anclas a la vez, usa set_anchors_preset().


enum LayoutDirection: 🔗

LayoutDirection LAYOUT_DIRECTION_INHERITED = 0

Dirección de diseño automática, determinada por la dirección de diseño del control padre.

LayoutDirection LAYOUT_DIRECTION_APPLICATION_LOCALE = 1

Dirección de diseño automática, determinada por la configuración regional actual. La dirección de diseño de derecha a izquierda se utiliza automáticamente para los idiomas que lo requieren, como el árabe y el hebreo, pero solo si se carga un archivo de traducción válido para el idioma dado (a menos que dicho idioma esté configurado como alternativa en ProjectSettings.internationalization/locale/fallback). Para todos los demás idiomas (o si Godot no encuentra un archivo de traducción válido), se utiliza la dirección de diseño de izquierda a derecha. Si utilizas TextServerFallback (ProjectSettings.internationalization/rendering/text_driver), siempre se utiliza la dirección de diseño de izquierda a derecha, independientemente del idioma. La dirección de diseño de derecha a izquierda también se puede forzar mediante ProjectSettings.internationalization/rendering/force_right_to_left_layout_direction.

LayoutDirection LAYOUT_DIRECTION_LTR = 2

Dirección de diseño de izquierda a derecha.

LayoutDirection LAYOUT_DIRECTION_RTL = 3

Dirección de diseño de derecha a izquierda.

LayoutDirection LAYOUT_DIRECTION_SYSTEM_LOCALE = 4

Dirección de diseño automática, determinada por la configuración regional del sistema. La dirección de diseño de derecha a izquierda se utiliza automáticamente para los idiomas que lo requieren, como el árabe y el hebreo, pero solo si se carga un archivo de traducción válido para el idioma dado. Para todos los demás idiomas (o si Godot no encuentra un archivo de traducción válido), se utiliza la dirección de diseño de izquierda a derecha. Si utilizas TextServerFallback (ProjectSettings.internationalization/rendering/text_driver), siempre se utiliza la dirección de diseño de izquierda a derecha, independientemente del idioma.

LayoutDirection LAYOUT_DIRECTION_MAX = 5

Representa el tamaño del enum LayoutDirection.

LayoutDirection LAYOUT_DIRECTION_LOCALE = 1

Obsoleto: Use LAYOUT_DIRECTION_APPLICATION_LOCALE instead.


enum TextDirection: 🔗

TextDirection TEXT_DIRECTION_INHERITED = 3

La dirección de escritura del texto es la misma que la dirección del diseño.

TextDirection TEXT_DIRECTION_AUTO = 0

Dirección de escritura de texto automática, determinada por la configuración regional actual y el contenido del texto.

TextDirection TEXT_DIRECTION_LTR = 1

Dirección de escritura de texto de izquierda a derecha.

TextDirection TEXT_DIRECTION_RTL = 2

Dirección de escritura de texto de derecha a izquierda.


Constantes

NOTIFICATION_RESIZED = 40 🔗

Se envía cuando el nodo cambia de tamaño. Usa size para obtener el nuevo tamaño.

NOTIFICATION_MOUSE_ENTER = 41 🔗

Enviado cuando el cursor del ratón entra en el área visible del control (o de cualquier control hijo), que no está ocluida detrás de otros Controles o Ventanas, siempre que su mouse_filter permita que el evento lo alcance e independientemente de si está actualmente enfocado o no.

Nota: CanvasItem.z_index no afecta qué Control recibe la notificación.

Véase también NOTIFICATION_MOUSE_ENTER_SELF.

NOTIFICATION_MOUSE_EXIT = 42 🔗

Enviado cuando el cursor del ratón sale del área visible del control (y de todos sus controles hijos), que no está ocluida detrás de otros Controles o Ventanas, siempre que su mouse_filter permita que el evento lo alcance e independientemente de si está actualmente enfocado o no.

Nota: CanvasItem.z_index no afecta qué Control recibe la notificación.

Véase también NOTIFICATION_MOUSE_EXIT_SELF.

NOTIFICATION_MOUSE_ENTER_SELF = 60 🔗

Experimental: The reason this notification is sent may change in the future.

Enviado cuando el cursor del ratón entra en el área visible del control, que no está ocluida detrás de otros Controles o Ventanas, siempre que su mouse_filter permita que el evento lo alcance e independientemente de si está actualmente enfocado o no.

Nota: CanvasItem.z_index no afecta qué Control recibe la notificación.

Véase también NOTIFICATION_MOUSE_ENTER.

NOTIFICATION_MOUSE_EXIT_SELF = 61 🔗

Experimental: The reason this notification is sent may change in the future.

Enviado cuando el cursor del ratón sale del área visible del control, que no está ocluida detrás de otros Controles o Ventanas, siempre que su mouse_filter permita que el evento lo alcance e independientemente de si está actualmente enfocado o no.

Nota: CanvasItem.z_index no afecta qué Control recibe la notificación.

Véase también NOTIFICATION_MOUSE_EXIT.

NOTIFICATION_FOCUS_ENTER = 43 🔗

Enviado cuando el nodo agarra el foco.

NOTIFICATION_FOCUS_EXIT = 44 🔗

Se envía cuando el nodo pierde el enfoque.

Esta notificación se envía en orden inverso.

NOTIFICATION_THEME_CHANGED = 45 🔗

Enviado cuando el nodo necesita refrescar sus elementos de tema. Esto sucede en uno de los siguientes casos:

  • La propiedad theme se cambia en este nodo o en cualquiera de sus ancestros.

  • La propiedad theme_type_variation se cambia en este nodo.

  • Se cambia una de las sobrescrituras de propiedades de tema del nodo.

  • El nodo entra en el árbol de escenas.

Nota: Como optimización, esta notificación no se enviará por cambios que ocurran mientras este nodo esté fuera del árbol de escenas. En su lugar, todas las actualizaciones de los elementos del tema pueden aplicarse a la vez cuando el nodo entre en el árbol de escenas.

Nota: Esta notificación se recibe junto con Node.NOTIFICATION_ENTER_TREE, por lo que si estás instanciando una escena, los nodos hijos aún no estarán inicializados. Puedes usarla para configurar el tema para este nodo, para nodos hijos creados desde script, o si quieres acceder a los nodos hijos añadidos en el editor, asegúrate de que el nodo esté listo usando Node.is_node_ready().

func _notification(what):
    if what == NOTIFICATION_THEME_CHANGED:
        if not is_node_ready():
            await ready # Espera a la señal ready.
        $Label.add_theme_color_override("font_color", Color.YELLOW)

NOTIFICATION_SCROLL_BEGIN = 47 🔗

Se envía cuando este nodo está dentro de un ScrollContainer que ha empezado a desplazarse al arrastrar el área desplazable con un evento táctil. Esta notificación no se envía al desplazar arrastrando la barra de desplazamiento, desplazando con la rueda del ratón o desplazando con eventos de teclado/gamepad.

Nota: Esta señal solo se emite en Android o iOS, o en plataformas de escritorio/web cuando ProjectSettings.input_devices/pointing/emulate_touch_from_mouse está habilitado.

NOTIFICATION_SCROLL_END = 48 🔗

Se envía cuando este nodo está dentro de un ScrollContainer que ha dejado de desplazarse al arrastrar el área desplazable con un evento táctil. Esta notificación no se envía al desplazar arrastrando la barra de desplazamiento, desplazando con la rueda del ratón o desplazando con eventos de teclado/gamepad.

Nota: Esta señal solo se emite en Android o iOS, o en plataformas de escritorio/web cuando ProjectSettings.input_devices/pointing/emulate_touch_from_mouse está habilitado.

NOTIFICATION_LAYOUT_DIRECTION_CHANGED = 49 🔗

Enviado cuando la dirección de la disposición del control cambia de LTR o RTL o viceversa. Esta notificación se propaga a los nodos Control hijos como resultado de un cambio en layout_direction.


Descripciones de Propiedades

Array[NodePath] accessibility_controls_nodes = [] 🔗

Las rutas a los nodos que están controlados por este nodo.


Array[NodePath] accessibility_described_by_nodes = [] 🔗

Las rutas a los nodos que describen este nodo.


String accessibility_description = "" 🔗

  • void set_accessibility_description(value: String)

  • String get_accessibility_description()

La descripción del nodo legible por humanos que se reporta a las aplicaciones de asistencia.


Array[NodePath] accessibility_flow_to_nodes = [] 🔗

Las rutas a los nodos a los que fluye este nodo.


Array[NodePath] accessibility_labeled_by_nodes = [] 🔗

Las rutas a los nodos que etiquetan este nodo.


AccessibilityLiveMode accessibility_live = 0 🔗

El modo con el que se actualiza una región activa. Una región activa es un Node que se actualiza como resultado de un evento externo cuando el foco del usuario puede estar en otro lugar.


String accessibility_name = "" 🔗

  • void set_accessibility_name(value: String)

  • String get_accessibility_name()

El nombre del nodo legible por humanos que se informa a las apps de asistencia.


float anchor_bottom = 0.0 🔗

Ancla el borde inferior del nodo al origen, el centro o el final de su control padre. Cambia la forma en que el margen inferior se actualiza cuando el nodo se mueve o cambia de tamaño. Puedes usar una de las constantes Anchor para tu conveniencia.


float anchor_left = 0.0 🔗

Ancla el borde izquierdo del nodo al origen, el centro o el final de su control padre. Cambia la forma en que el margen izquierdo se actualiza cuando el nodo se mueve o cambia de tamaño. Puedes usar una de las constantes Anchor para tu conveniencia.


float anchor_right = 0.0 🔗

Ancla el borde derecho del nodo al origen, el centro o el final de su control padre. Cambia la forma en que el margen derecho se actualiza cuando el nodo se mueve o cambia de tamaño. Puedes usar una de las constantes Anchor para tu conveniencia.


float anchor_top = 0.0 🔗

Ancla el borde superior del nodo al origen, el centro o el final de su control padre. Cambia la forma en que el margen superior se actualiza cuando el nodo se mueve o cambia de tamaño. Puedes usar una de las constantes Anchor para tu conveniencia.


bool auto_translate 🔗

  • void set_auto_translate(value: bool)

  • bool is_auto_translating()

Obsoleto: Use Node.auto_translate_mode and Node.can_auto_translate() instead.

Activa o desactiva si algún texto debe cambiar automáticamente a su versión traducida dependiendo de la configuración regional actual.


bool clip_contents = false 🔗

  • void set_clip_contents(value: bool)

  • bool is_clipping_contents()

Activa si el renderizado de los hijos basados en CanvasItem debe ser recortado al rectángulo de este control. Si es true, las partes de un hijo que estarían visiblemente fuera del rectángulo de este control no se renderizarán y no recibirán entrada.


Vector2 custom_maximum_size = Vector2(-1, -1) 🔗

  • void set_custom_maximum_size(value: Vector2)

  • Vector2 get_custom_maximum_size()

The maximum size of this Control's bounding rectangle. If set to a value greater than or equal to (0, 0), the node's bounding rectangle will never exceed this size. A value below (0, 0) means there is no maximum size.

Note: The final effective maximum size may be subject to parent Container sizing and propagated maximum sizes. See also: get_combined_maximum_size().

Note: Not all Control subtypes handle a custom maximum size gracefully, which may lead to unexpected behavior if the control's contents exceed this size.

Note: This value has priority over custom_minimum_size. For example, if you set custom_maximum_size to (100, 100) and custom_minimum_size to (200, 200), the resulting size will be (100, 100).

Note: It is recommended to use get_bound_minimum_size() instead of get_combined_minimum_size() when using this property, as the former respects maximum size limits when calculating the minimum size, while the latter does not.


Vector2 custom_minimum_size = Vector2(0, 0) 🔗

  • void set_custom_minimum_size(value: Vector2)

  • Vector2 get_custom_minimum_size()

The minimum size of the node's bounding rectangle. If you set it to a value greater than (0, 0), the node's bounding rectangle will always have at least this size. Note that Control nodes have their internal minimum size returned by get_minimum_size(). It depends on the control's contents, like text, textures, or style boxes. The actual minimum size is the maximum value of this property and the internal minimum size (see get_combined_minimum_size()).

Note: custom_maximum_size has priority over this property. For example, if you set custom_minimum_size to (200, 200) and custom_maximum_size to (100, 100), the resulting size will be (100, 100).


FocusBehaviorRecursive focus_behavior_recursive = 0 🔗

Determina qué controles se pueden enfocar junto con focus_mode. Véase get_focus_mode_with_override(). Dado que el comportamiento predeterminado es FOCUS_BEHAVIOR_INHERITED, esto se puede utilizar para evitar que todos los controles secundarios se enfoquen.


FocusMode focus_mode = 0 🔗

Determina qué controles se pueden enfocar. Solo se puede enfocar un control a la vez, y el control enfocado recibirá eventos de teclado, gamepad y ratón en _gui_input(). Utiliza get_focus_mode_with_override() para determinar si un control puede tomar el foco, ya que focus_behavior_recursive también le afecta. Véase también grab_focus().


NodePath focus_neighbor_bottom = NodePath("") 🔗

Le dice a Godot a qué nodo debe darle el foco si el usuario pulsa la flecha abajo en el teclado o abajo en un gamepad de forma predeterminada. Puedes cambiar la tecla editando la acción de entrada ProjectSettings.input/ui_down. El nodo debe ser un Control. Si esta propiedad no está establecida, Godot le dará el foco al Control más cercano a la parte inferior de este.


NodePath focus_neighbor_left = NodePath("") 🔗

Le dice a Godot a qué nodo debe darle el foco si el usuario pulsa la flecha izquierda en el teclado o a la izquierda en un gamepad de forma predeterminada. Puedes cambiar la tecla editando la acción de entrada ProjectSettings.input/ui_left. El nodo debe ser un Control. Si esta propiedad no está establecida, Godot le dará el foco al Control más cercano a la izquierda de este.


NodePath focus_neighbor_right = NodePath("") 🔗

Le dice a Godot a qué nodo debe darle el foco si el usuario pulsa la flecha derecha en el teclado o a la derecha en un gamepad de forma predeterminada. Puedes cambiar la tecla editando la acción de entrada ProjectSettings.input/ui_right. El nodo debe ser un Control. Si esta propiedad no está establecida, Godot le dará el foco al Control más cercano a la derecha de este.


NodePath focus_neighbor_top = NodePath("") 🔗

Le dice a Godot a qué nodo debe darle el foco si el usuario pulsa la flecha arriba en el teclado o arriba en un gamepad de forma predeterminada. Puedes cambiar la tecla editando la acción de entrada ProjectSettings.input/ui_up. El nodo debe ser un Control. Si esta propiedad no está establecida, Godot le dará el foco al Control más cercano a la parte superior de este.


NodePath focus_next = NodePath("") 🔗

Tells Godot which node it should give focus to if the user presses Tab on a keyboard by default. You can change the key by editing the ProjectSettings.input/ui_focus_next input action.

If this property is not set, Godot will select a "best guess" based on surrounding nodes in the scene tree.


NodePath focus_previous = NodePath("") 🔗

Tells Godot which node it should give focus to if the user presses Shift + Tab on a keyboard by default. You can change the key by editing the ProjectSettings.input/ui_focus_prev input action.

If this property is not set, Godot will select a "best guess" based on surrounding nodes in the scene tree.


Vector2 global_position 🔗

La posición global del nodo, relativa al mundo (normalmente a la CanvasLayer).


GrowDirection grow_horizontal = 1 🔗

Controla la dirección en el eje horizontal en la que el control debe crecer si su tamaño mínimo horizontal se cambia para que sea mayor que su tamaño actual, ya que el control siempre tiene que ser al menos del tamaño mínimo.


GrowDirection grow_vertical = 1 🔗

Controla la dirección en el eje vertical en la que el control debe crecer si su tamaño mínimo vertical se cambia para que sea mayor que su tamaño actual, ya que el control siempre tiene que ser al menos del tamaño mínimo.


LayoutDirection layout_direction = 0 🔗

Controla la dirección del diseño y la dirección de la escritura del texto. Los diseños de derecha a izquierda son necesarios para ciertos idiomas (por ejemplo, árabe y hebreo). Véase también is_layout_rtl().


bool localize_numeral_system = true 🔗

  • void set_localize_numeral_system(value: bool)

  • bool is_localizing_numeral_system()

Si es true, convierte automáticamente los números de línea de código, los índices de lista, los valores de SpinBox y ProgressBar del árabe occidental (0..9) a los sistemas de numeración utilizados en la configuración regional actual.

Nota: Los números dentro del texto no se convierten automáticamente, se pueden hacer manualmente, usando TextServer.format_number().


MouseBehaviorRecursive mouse_behavior_recursive = 0 🔗

Determina qué controles pueden recibir entrada del ratón junto con mouse_filter. Véase get_mouse_filter_with_override(). Dado que el comportamiento predeterminado es MOUSE_BEHAVIOR_INHERITED, esto se puede utilizar para evitar que todos los controles hijos reciban entrada del ratón.


CursorShape mouse_default_cursor_shape = 0 🔗

La forma del cursor por defecto para este control. Útil para los plugins de Godot y las aplicaciones o juegos que utilizan los cursores del ratón del sistema.

Nota: En Linux, las formas pueden variar dependiendo del tema del cursor del sistema.


MouseFilter mouse_filter = 0 🔗

Determina qué controles podrán recibir eventos de entrada de botón del ratón a través de _gui_input() y las señales mouse_entered y mouse_exited. También determina cómo deben propagarse estos eventos. Véanse las constantes para saber qué hace cada una. Utiliza get_mouse_filter_with_override() para determinar si un control puede recibir entrada del ratón, ya que mouse_behavior_recursive también le afecta.


bool mouse_force_pass_scroll_events = true 🔗

  • void set_force_pass_scroll_events(value: bool)

  • bool is_force_pass_scroll_events()

Cuando está activado, los eventos de la rueda del ratón procesados por _gui_input() se pasarán al control padre incluso si mouse_filter está establecido en MOUSE_FILTER_STOP.

Deberías desactivarlo en la raíz de tu IU si no quieres que los eventos de desplazamiento vayan al procesamiento de Node._unhandled_input().

Nota: Debido a que esta propiedad por defecto es true, esto permite que los contenedores desplazables anidados funcionen inmediatamente.


float offset_bottom = 0.0 🔗

Distancia entre el borde inferior del nodo y su control padre, basado en anchor_bottom.

Los márgenes son a menudo controlados por uno o varios nodos padre Container, por lo que no deberías modificarlos manualmente si tu nodo es un hijo directo de un Container. Los márgenes se actualizan automáticamente cuando mueves o cambias el tamaño del nodo.


float offset_left = 0.0 🔗

Distancia entre el borde izquierdo del nodo y su control padre, basado en anchor_left.

Los márgenes son a menudo controlados por uno o varios nodos padre Container, por lo que no deberías modificarlos manualmente si tu nodo es un hijo directo de un Container. Los márgenes se actualizan automáticamente cuando mueves o cambias el tamaño del nodo.


float offset_right = 0.0 🔗

Distancia entre el borde derecho del nodo y su control padre, basado en anchor_right.

Los márgenes son a menudo controlados por uno o varios nodos padre Container, por lo que no deberías modificarlos manualmente si tu nodo es un hijo directo de un Container. Los márgenes se actualizan automáticamente cuando mueves o cambias el tamaño del nodo.


float offset_top = 0.0 🔗

Distancia entre el borde superior del nodo y su control padre, basado en anchor_top.

Los márgenes a menudo están controlados por uno o varios nodos padre Container, por lo que no deberías modificarlos manualmente si tu nodo es un hijo directo de un Container. Los márgenes se actualizan automáticamente cuando mueves o cambias el tamaño del nodo.


bool offset_transform_enabled = false 🔗

  • void set_offset_transform_enabled(value: bool)

  • bool is_offset_transform_enabled()

If true, applies all offset transform properties. Otherwise, no offset transform is applied and the properties have no effect.


Vector2 offset_transform_pivot = Vector2(0, 0) 🔗

  • void set_offset_transform_pivot(value: Vector2)

  • Vector2 get_offset_transform_pivot()

Pivot used by offset_transform_rotation and offset_transform_scale in absolute units.

The final pivot position is the combined value of this property and offset_transform_pivot_ratio.

Has no effect unless offset_transform_enabled is true.


Vector2 offset_transform_pivot_ratio = Vector2(0.5, 0.5) 🔗

  • void set_offset_transform_pivot_ratio(value: Vector2)

  • Vector2 get_offset_transform_pivot_ratio()

Same as offset_transform_pivot but expressed in units relative to the Control size where Vector2(0, 0) is the top-left corner of this control, and Vector2(1, 1) is its bottom-right corner.

The final pivot position is the combined value of this property and offset_transform_pivot.

Has no effect unless offset_transform_enabled is true.


Vector2 offset_transform_position = Vector2(0, 0) 🔗

  • void set_offset_transform_position(value: Vector2)

  • Vector2 get_offset_transform_position()

Position offset in absolute units. The final offset is the combined value of this property and offset_transform_position_ratio.

Has no effect unless offset_transform_enabled is true.


Vector2 offset_transform_position_ratio = Vector2(0, 0) 🔗

  • void set_offset_transform_position_ratio(value: Vector2)

  • Vector2 get_offset_transform_position_ratio()

Same as offset_transform_position but expressed in units relative to the Control size where Vector2(0, 0) is the top-left corner of this control, and Vector2(1, 1) is its bottom-right corner.

The final offset is the combined value of this property and offset_transform_position.

Has no effect unless offset_transform_enabled is true.


float offset_transform_rotation = 0.0 🔗

  • void set_offset_transform_rotation(value: float)

  • float get_offset_transform_rotation()

Rotation offset. The rotation pivot is defined by offset_transform_pivot and offset_transform_pivot_ratio.

Has no effect unless offset_transform_enabled is true.


Vector2 offset_transform_scale = Vector2(1, 1) 🔗

  • void set_offset_transform_scale(value: Vector2)

  • Vector2 get_offset_transform_scale()

Scale offset. The scale pivot is defined by offset_transform_pivot and offset_transform_pivot_ratio.

Has no effect unless offset_transform_enabled is true.


bool offset_transform_visual_only = true 🔗

  • void set_offset_transform_visual_only(value: bool)

  • bool is_offset_transform_visual_only()

If true, the offset transforms is only applied visually and does not affect input. In other words, this Control will still receive input events at its original location before the offset transform is applied.

If false, the entire transform of this Control is affected and input events will register where the Control is visually.

Has no effect unless offset_transform_enabled is true.


Vector2 pivot_offset = Vector2(0, 0) 🔗

Por defecto, el punto de pivote del nodo es su esquina superior izquierda. Cuando cambias su rotation o scale, rotará o escalará alrededor de este pivote.

El desplazamiento real es el valor combinado de esta propiedad y pivot_offset_ratio.


Vector2 pivot_offset_ratio = Vector2(0, 0) 🔗

  • void set_pivot_offset_ratio(value: Vector2)

  • Vector2 get_pivot_offset_ratio()

Igual que pivot_offset, pero expresado como un vector uniforme, donde Vector2(0, 0) es la esquina superior izquierda de este control, y Vector2(1, 1) es su esquina inferior derecha. Establece esta propiedad en Vector2(0.5, 0.5) para pivotar alrededor del centro de este control.

El desplazamiento (offset) real es el valor combinado de esta propiedad y pivot_offset.


Vector2 position = Vector2(0, 0) 🔗

The node's position, relative to its containing node. It corresponds to the rectangle's top-left corner. The property is not affected by pivot_offset.


bool propagate_maximum_size = false 🔗

  • void set_propagate_maximum_size(value: bool)

  • bool is_propagating_maximum_size()

If true, this Control's children will use the value returned by get_combined_maximum_size() in their own size calculations.


float rotation = 0.0 🔗

  • void set_rotation(value: float)

  • float get_rotation()

La rotación del nodo alrededor de su pivote, en radianes. Véase pivot_offset para cambiar la posición del pivote.

Nota: Esta propiedad se edita en el inspector en grados. Si quieres usar grados en un script, usa rotation_degrees.


float rotation_degrees 🔗

  • void set_rotation_degrees(value: float)

  • float get_rotation_degrees()

Propiedad auxiliar para acceder a rotation en grados en lugar de radianes.


Vector2 scale = Vector2(1, 1) 🔗

La escala del nodo, relativa a su size. Cambia esta propiedad para escalar el nodo alrededor de su pivot_offset. La información sobre herramienta (tooltip) del Control también se escalará según este valor.

Nota: Esta propiedad está pensada principalmente para fines de animación. Para admitir múltiples resoluciones en tu proyecto, usa un modo de estiramiento de viewport apropiado como se describe en la documentación en lugar de escalar los Controls individualmente.

Nota: FontFile.oversampling no tiene en cuenta la scale de Control. Esto significa que escalar hacia arriba o hacia abajo hará que las fuentes de mapa de bits y las fuentes dinámicas rasterizadas (no MSDF) aparezcan borrosas o pixeladas. Para asegurar que el texto permanezca nítido independientemente de la escala, puedes habilitar el renderizado de fuentes MSDF activando ProjectSettings.gui/theme/default_font_multichannel_signed_distance_field (se aplica solo a la fuente predeterminada del proyecto), o habilitando Campo de Distancia Firmado Multicanal en las opciones de importación de una DynamicFont para fuentes personalizadas. En las fuentes del sistema, se puede habilitar SystemFont.multichannel_signed_distance_field en el inspector.

Nota: Si el nodo Control es hijo de un nodo Container, la escala se restablecerá a Vector2(1, 1) cuando se instancie la escena. Para establecer la escala del Control cuando se instancia, espera un fotograma usando await get_tree().process_frame y luego establece su propiedad scale.


Node shortcut_context 🔗

  • void set_shortcut_context(value: Node)

  • Node get_shortcut_context()

El Node que debe ser un padre del Control enfocado para que el atajo se active. Si es null, el atajo puede activarse cuando cualquier control esté enfocado (un atajo global). Esto permite que los atajos se acepten solo cuando el usuario tiene una cierta área de la GUI enfocada.


Vector2 size = Vector2(0, 0) 🔗

El tamaño del rectángulo delimitador del nodo, en el sistema de coordenadas del nodo. Los nodos Container actualizan esta propiedad automáticamente.


BitField[SizeFlags] size_flags_horizontal = 1 🔗

  • void set_h_size_flags(value: BitField[SizeFlags])

  • BitField[SizeFlags] get_h_size_flags()

Le dice a los nodos padre Container cómo deben cambiar de tamaño y colocar el nodo en el eje X. Usa una combinación de las constantes SizeFlags para cambiar los flags. Véanse las constantes para saber qué hace cada una.


float size_flags_stretch_ratio = 1.0 🔗

  • void set_stretch_ratio(value: float)

  • float get_stretch_ratio()

Si el nodo y al menos uno de sus vecinos utiliza la bandera de tamaño SIZE_EXPAND, el padre Container le permitirá ocupar más o menos espacio dependiendo de esta propiedad. Si este nodo tiene una relación de estiramiento de 2 y su vecino una relación de 1, este nodo ocupará dos tercios del espacio disponible.


BitField[SizeFlags] size_flags_vertical = 1 🔗

  • void set_v_size_flags(value: BitField[SizeFlags])

  • BitField[SizeFlags] get_v_size_flags()

Le dice a los nodos padres Container cómo deberían cambiar de tamaño y colocar el nodo en el eje Y. Usa una combinación de las constantes SizeFlags para cambiar las banderas. Mira las constantes para aprender lo que hace cada una.


Theme theme 🔗

El recurso Theme que este nodo y todos sus hijos Control y Window usan. Si un nodo hijo tiene su propio recurso Theme establecido, los elementos del tema se fusionan con las definiciones del hijo, teniendo este mayor prioridad.

Nota: Los estilos de Window no tendrán efecto a menos que la ventana esté integrada.


StringName theme_type_variation = &"" 🔗

El nombre de una variación del tipo de tema utilizada por este Control para buscar sus propios elementos de tema. Cuando está vacío, se utiliza el nombre de la clase del nodo (por ejemplo, Button para el control Button), así como los nombres de clase de todas las clases padre (en orden de herencia).

Cuando se establece, esta propiedad da la máxima prioridad al tipo del nombre especificado. Este tipo puede a su vez extender otro tipo, formando una cadena de dependencias. Véase Theme.set_type_variation(). Si el elemento del tema no se puede encontrar utilizando este tipo o sus tipos base, la búsqueda recurre a los nombres de las clases.

Nota: Para buscar los propios elementos de Control, utiliza varios métodos get_theme_* sin especificar theme_type.

Nota: Los elementos del tema se buscan en el orden del árbol, de la rama a la raíz, donde se comprueba cada nodo Control por su propiedad theme. Se devuelve la primera coincidencia con cualquier tipo/nombre de clase. El Theme a nivel de proyecto y el Theme predeterminado se comprueban en último lugar.


AutoTranslateMode tooltip_auto_translate_mode = 0 🔗

Define si el texto de la sugerencia debe cambiar automáticamente a su versión traducida dependiendo de la configuración regional actual. Utiliza el mismo modo de traducción automática que este control cuando se establece en Node.AUTO_TRANSLATE_MODE_INHERIT.

Nota: Las sugerencias personalizadas mediante _make_custom_tooltip() no utilizan este modo de traducción automática automáticamente.


String tooltip_text = "" 🔗

  • void set_tooltip_text(value: String)

  • String get_tooltip_text()

The default tooltip text. The tooltip appears when the user's mouse cursor stays idle over this control for a few moments, provided that the mouse_filter property is not MOUSE_FILTER_IGNORE. The time required for the tooltip to appear can be changed with the ProjectSettings.gui/timers/tooltip_delay_sec setting.

This string is the default return value of get_tooltip(). Override _get_tooltip() to generate tooltip text dynamically. Override _make_custom_tooltip() to customize the tooltip interface and behavior.

The tooltip popup will use either a default implementation, or a custom one that you can provide by overriding _make_custom_tooltip(). The default tooltip includes a PopupPanel and Label whose theme properties can be customized using Theme methods with the "TooltipPanel" and "TooltipLabel" respectively. For example:

var style_box = StyleBoxFlat.new()
style_box.set_bg_color(Color(1, 1, 0))
style_box.set_border_width_all(2)
# We assume here that the `theme` property has been assigned a custom Theme beforehand.
theme.set_stylebox("panel", "TooltipPanel", style_box)
theme.set_color("font_color", "TooltipLabel", Color(0, 1, 1))

StringName translation_context = &"" 🔗

The translation context used when translating this control's displayed text, if it has any. Also used when generating translation templates.


Descripciones de Métodos

String _accessibility_get_contextual_info() virtual const 🔗

Devuelve la descripción de los atajos de teclado y otra ayuda contextual para este control.


bool _can_drop_data(at_position: Vector2, data: Variant) virtual const 🔗

Godot llama a este método para probar si los data de _get_drag_data() de un control pueden soltarse en at_position. at_position es local a este control.

Este método solo debe usarse para probar los datos. Procesa los datos en _drop_data().

Nota: Si el arrastre fue iniciado por un atajo de teclado o accessibility_drag(), at_position se establece en Vector2.INF, y se debe usar el elemento seleccionado actualmente o la posición del texto como posición de soltura.

func _can_drop_data(position, data):
    # Check position if it is relevant to you
    # Otherwise, just check data
    return typeof(data) == TYPE_DICTIONARY and data.has("expected")

void _drop_data(at_position: Vector2, data: Variant) virtual 🔗

Godot llama a este método para pasarte los data del resultado de _get_drag_data() de un control. Godot primero llama a _can_drop_data() para probar si se permite soltar los data en at_position, donde at_position es local a este control.

Nota: Si el arrastre fue iniciado por un atajo de teclado o accessibility_drag(), at_position se establece en Vector2.INF, y se debe usar el elemento seleccionado actualmente o la posición del texto como posición de soltura.

func _can_drop_data(position, data):
    return typeof(data) == TYPE_DICTIONARY and data.has("color")

func _drop_data(position, data):
    var color = data["color"]

String _get_accessibility_container_name(node: Node) virtual const 🔗

Sobrescribe este método para devolver una descripción legible por humanos de la posición del node hijo en el contenedor personalizado, la cual se añadirá a accessibility_name.


int _get_cursor_shape(at_position: Vector2) virtual const 🔗

Virtual method to be implemented by the user. Returns the cursor shape for the position at_position in the control's local coordinates, which will typically be used while hovering over this control. See get_cursor_shape().

If not overridden, defaults to mouse_default_cursor_shape.


Variant _get_drag_data(at_position: Vector2) virtual 🔗

Godot llama a este método para obtener datos que pueden arrastrarse y soltarse sobre controles que esperan datos de soltura. Devuelve null si no hay datos para arrastrar. Los controles que quieren recibir datos de soltura deben implementar _can_drop_data() y _drop_data(). at_position es local a este control. El arrastre puede forzarse con force_drag().

Una vista previa que seguirá al ratón y debería representar los datos puede establecerse con set_drag_preview(). Un buen momento para establecer la vista previa es en este método.

Nota: Si el arrastre fue iniciado por un atajo de teclado o accessibility_drag(), at_position se establece en Vector2.INF, y se debe usar el elemento seleccionado actualmente o la posición del texto como posición de arrastre.

func _get_drag_data(position):
    var mydata = make_data() # Este es tu método personalizado que genera los datos de arrastre.
    set_drag_preview(make_preview(mydata)) # Este es tu método personalizado que genera la vista previa de los datos de arrastre.
    return mydata

Vector2 _get_maximum_size() virtual const 🔗

Virtual method to be implemented by the user. Returns the maximum size for this control. Alternative to custom_maximum_size for controlling maximum size via code. The actual maximum size will be the max value of these two (in each axis separately).

If not overridden, defaults to Vector2.ZERO.

Note: This method will not be called when the script is attached to a Control node that already overrides its maximum size (e.g. ScrollContainer).

Note: It is recommended to use get_bound_minimum_size() instead of get_combined_minimum_size() when implementing this method, as the former respects maximum size limits when calculating the minimum size, while the latter does not.


Vector2 _get_minimum_size() virtual const 🔗

Método virtual que debe ser implementado por el usuario. Devuelve el tamaño mínimo para este control. Es una alternativa a custom_minimum_size para controlar el tamaño mínimo mediante código. El tamaño mínimo real será el valor máximo de estos dos (en cada eje por separado).

Si no se sobrescribe, el valor predeterminado es Vector2.ZERO.

Nota: Este método no se llamará cuando el script esté adjunto a un nodo Control que ya sobrescriba su tamaño mínimo (por ejemplo, Label, Button, PanelContainer, etc.). Solo puede usarse con la mayoría de los nodos GUI básicos, como Control, Container, Panel, etc.


String _get_tooltip(at_position: Vector2) virtual const 🔗

Virtual method to be implemented by the user. Returns the tooltip text for the position at_position in the control's local coordinates, which will typically appear when the cursor is resting over this control. See get_tooltip().

Note: If this method returns an empty String and _make_custom_tooltip() is not overridden, no tooltip is displayed.


AutoTranslateMode _get_tooltip_auto_translate_mode_at(at_position: Vector2) virtual const 🔗

Return the auto-translation mode at the given at_position. If not implemented, the tooltip_auto_translate_mode property will be used instead.


void _gui_input(event: InputEvent) virtual 🔗

Método virtual que debe ser implementado por el usuario. Sobrescribe este método para manejar y aceptar entradas en elementos de la interfaz de usuario. Véase también accept_event().

Ejemplo: Haz clic en el control para imprimir un mensaje:

func _gui_input(event):
    if event is InputEventMouseButton:
        if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:
            print("Me han hecho clic D:")

Si el event hereda de InputEventMouse, este método no se llamará cuando:

Nota: La posición del event es relativa al origen de este control.


bool _has_point(point: Vector2) virtual const 🔗

Virtual method to be implemented by the user. Returns whether the given point is inside this control.

If not overridden, default behavior is checking if the point is within the control's Rect.

Note: If you want to check if a point is inside the control, you can use Rect2(Vector2.ZERO, size).has_point(point).


Object _make_custom_tooltip(for_text: String) virtual const 🔗

Método virtual que debe ser implementado por el usuario. Devuelve un nodo Control que debe usarse como información sobre herramienta (tooltip) en lugar del predeterminado. for_text es el valor de retorno de get_tooltip().

El nodo devuelto debe ser de tipo Control o derivado de Control. Puede tener nodos hijos de cualquier tipo. Se libera cuando la información sobre herramienta desaparece, así que asegúrate de proporcionar siempre una nueva instancia (si quieres usar un nodo preexistente de tu árbol de escena, puedes duplicarlo y pasar la instancia duplicada). Cuando se devuelve null o un nodo que no es Control, se utilizará la información sobre herramienta predeterminada.

El nodo devuelto se añadirá como hijo a un PopupPanel, por lo que solo debes proporcionar el contenido de ese panel. Ese PopupPanel puede tematizarse usando Theme.set_stylebox() para el tipo "TooltipPanel" (consulta tooltip_text para un ejemplo).

Nota: La información sobre herramienta se reduce a su tamaño mínimo. Si quieres asegurarte de que sea completamente visible, es posible que quieras establecer su custom_minimum_size en algún valor distinto de cero.

Nota: El nodo (y cualquier hijo relevante) debe tener su CanvasItem.visible establecido en true al ser devuelto; de lo contrario, el viewport que lo instancia no podrá calcular su tamaño mínimo de forma fiable.

Nota: Si se sobrescribe, este método se llama incluso si get_tooltip() devuelve una cadena vacía. Cuando esto ocurre con la información sobre herramienta predeterminada, no se muestra. Para copiar este comportamiento, devuelve null en este método cuando for_text esté vacío.

Ejemplo: Usa un nodo construido como información sobre herramienta:

func _make_custom_tooltip(for_text):
    var label = Label.new()
    label.text = for_text
    return label

Ejemplo: Usa una instancia de escena como información sobre herramienta:

func _make_custom_tooltip(for_text):
    var tooltip = preload("res://some_tooltip_scene.tscn").instantiate()
    tooltip.get_node("Label").text = for_text
    return tooltip

Array[Vector3i] _structured_text_parser(args: Array, text: String) virtual const 🔗

Función de sobrescritura del algoritmo BiDi (bidireccional) definida por el usuario.

Devuelve un Array de rangos de texto Vector3i y direcciones base del texto, en el orden de izquierda a derecha. Los rangos deben cubrir el text de origen completo sin solapamientos. El algoritmo BiDi se aplicará en cada rango por separado.


void accept_event() 🔗

Marca un evento de entrada como manejado. Una vez que aceptas un evento de entrada, este deja de propagarse, incluso a los nodos que escuchan Node._unhandled_input() o Node._unhandled_key_input().

Nota: Esto no afecta a los métodos en Input, solo a la forma en que se propagan los eventos.


void accessibility_drag() 🔗

Inicia una operación de arrastrar y soltar (drag-and-drop) sin utilizar un ratón.


void accessibility_drop() 🔗

Finaliza una operación de arrastrar y soltar (drag-and-drop) sin utilizar un ratón.


void add_theme_color_override(name: StringName, color: Color) 🔗

Crea una sobrescritura local para un Color de tema con el name especificado. Las sobrescrituras locales siempre tienen prioridad al obtener elementos del tema para el control. Una sobrescritura puede eliminarse con remove_theme_color_override().

Consulta también get_theme_color().

Ejemplo: Sobrescribir el color de un Label y restablecerlo más tarde:

# Dado el nodo hijo Label "MyLabel", sobrescribe su color de fuente con un valor personalizado.
$MyLabel.add_theme_color_override("font_color", Color(1, 0.5, 0))
# Restablece el color de fuente del nodo Label hijo.
$MyLabel.remove_theme_color_override("font_color")
# Alternativamente, se puede sobrescribir con el valor por defecto del tipo Label.
$MyLabel.add_theme_color_override("font_color", get_theme_color("font_color", "Label"))

void add_theme_constant_override(name: StringName, constant: int) 🔗

Crea una anulación local para una constante del tema con el name especificado. Las anulaciones locales siempre tienen prioridad al obtener elementos del tema para el control. Una anulación puede eliminarse con remove_theme_constant_override().

Véase también get_theme_constant().


void add_theme_font_override(name: StringName, font: Font) 🔗

Crea una anulación local para una Font del tema con el name especificado. Las anulaciones locales siempre tienen prioridad al obtener elementos del tema para el control. Una anulación puede eliminarse con remove_theme_font_override().

Véase también get_theme_font().


void add_theme_font_size_override(name: StringName, font_size: int) 🔗

Crea una anulación local para un tamaño de fuente del tema con el name especificado. Las anulaciones locales siempre tienen prioridad al obtener elementos del tema para el control. Una anulación puede eliminarse con remove_theme_font_size_override().

Véase también get_theme_font_size().


void add_theme_icon_override(name: StringName, texture: Texture2D) 🔗

Crea una anulación local para un icono del tema con el name especificado. Las anulaciones locales siempre tienen prioridad al obtener elementos del tema para el control. Una anulación puede eliminarse con remove_theme_icon_override().

Véase también get_theme_icon().


void add_theme_stylebox_override(name: StringName, stylebox: StyleBox) 🔗

Crea una sobrescritura local para un StyleBox de tema con el name especificado. Las sobrescrituras locales siempre tienen prioridad al obtener elementos del tema para el control. Una sobrescritura puede eliminarse con remove_theme_stylebox_override().

Consulta también get_theme_stylebox().

Ejemplo: Modificar una propiedad en un StyleBox duplicándolo:

# El fragmento a continuación asume que el nodo hijo "MyButton" tiene un StyleBoxFlat asignado.
# Los recursos se comparten entre instancias, por lo que necesitamos duplicarlo
# para evitar modificar la apariencia de todos los demás botones.
var new_stylebox_normal = $MyButton.get_theme_stylebox("normal").duplicate()
new_stylebox_normal.border_width_top = 3
new_stylebox_normal.border_color = Color(0, 1, 0.5)
$MyButton.add_theme_stylebox_override("normal", new_stylebox_normal)
# Elimina la sobrescritura del stylebox.
$MyButton.remove_theme_stylebox_override("normal")

void begin_bulk_theme_override() 🔗

Evita que los métodos *_theme_*_override emitan NOTIFICATION_THEME_CHANGED hasta que se llame a end_bulk_theme_override().


void end_bulk_theme_override() 🔗

Ends a bulk theme override update. See begin_bulk_theme_override().


Control find_next_valid_focus() const 🔗

Encuentra el siguiente Control (debajo en el árbol) que puede recibir el foco.


Control find_prev_valid_focus() const 🔗

Finds the previous (above in the tree) Control that can receive the focus.


Control find_valid_focus_neighbor(side: Side) const 🔗

Busca el siguiente Control que puede recibir el foco en el Side especificado.

Nota: Esto es diferente de get_focus_neighbor(), que devuelve la ruta (path) de un vecino de foco especificado.


void force_drag(data: Variant, preview: Control) 🔗

Fuerza el arrastre y omite _get_drag_data() y set_drag_preview() al pasar data y preview. El arrastre comenzará incluso si el ratón no está sobre este control ni se ha pulsado en él.

Los métodos _can_drop_data() y _drop_data() deben implementarse en los controles que deseen recibir datos de soltado.


float get_anchor(side: Side) const 🔗

Devuelve el anclaje para el Side especificado. Un método getter para anchor_bottom, anchor_left, anchor_right y anchor_top.


Vector2 get_begin() const 🔗

Returns offset_left and offset_top. See also position.


Vector2 get_bound_minimum_size() const 🔗

Returns the bound value of get_combined_minimum_size() by get_combined_maximum_size().

This value is the true minimum size of the container, as the maximum size has priority over the minimum size.

For example, if the combined minimum size is (100, 100) and the combined maximum size is (50, 150), the bound minimum size will be (50, 100).


Vector2 get_combined_maximum_size() const 🔗

Returns the combined maximum size from custom_maximum_size and get_maximum_size(), as well as the custom_maximum_size of this node's parent if it is a Control node with propagate_maximum_size set to true.


Vector2 get_combined_minimum_size() const 🔗

Returns the combined minimum size from custom_minimum_size and get_minimum_size().


Vector2 get_combined_pivot_offset() const 🔗

Devuelve el valor combinado de pivot_offset y pivot_offset_ratio, en píxeles. El tamaño del control se multiplica por el ratio.


CursorShape get_cursor_shape(at_position: Vector2 = Vector2(0, 0)) const 🔗

Returns the mouse cursor shape for this control when hovered over at_position in local coordinates. For most controls, this is the same as mouse_default_cursor_shape, but some built-in controls implement more complex logic.

You can override _get_cursor_shape() to implement custom behavior for this method.


Vector2 get_end() const 🔗

Devuelve offset_right y offset_bottom.


FocusMode get_focus_mode_with_override() const 🔗

Devuelve el focus_mode, pero tiene en cuenta el focus_behavior_recursive. Si focus_behavior_recursive está establecido en FOCUS_BEHAVIOR_DISABLED, o está establecido en FOCUS_BEHAVIOR_INHERITED y su antecesor está establecido en FOCUS_BEHAVIOR_DISABLED, entonces esto devuelve FOCUS_NONE.


NodePath get_focus_neighbor(side: Side) const 🔗

Devuelve el vecino de foco para el Side especificado. Un método getter para focus_neighbor_bottom, focus_neighbor_left, focus_neighbor_right y focus_neighbor_top.

Nota: Para encontrar el siguiente Control en el Side específico, incluso si no se ha asignado un vecino, usa find_valid_focus_neighbor().


Rect2 get_global_rect() const 🔗

Devuelve la posición y el tamaño del control en relación con el lienzo que lo contiene. Véase global_position y size.

Nota: Si el propio nodo o cualquier CanvasItem padre entre el nodo y el lienzo tienen una rotación o inclinación no predeterminada, el tamaño resultante probablemente no sea significativo.

Nota: Establecer Viewport.gui_snap_controls_to_pixels a true puede dar lugar a imprecisiones de redondeo entre el control visualizado y el Rect2 devuelto.


Vector2 get_maximum_size() const 🔗

Returns the maximum size for this control. See custom_maximum_size.


Vector2 get_minimum_size() const 🔗

Devuelve el tamaño mínimo para este control. Véase custom_minimum_size.


MouseFilter get_mouse_filter_with_override() const 🔗

Devuelve el mouse_filter, pero tiene en cuenta el mouse_behavior_recursive. Si mouse_behavior_recursive está establecido en MOUSE_BEHAVIOR_DISABLED, o está establecido en MOUSE_BEHAVIOR_INHERITED y su antecesor está establecido en MOUSE_BEHAVIOR_DISABLED, entonces esto devuelve MOUSE_FILTER_IGNORE.


float get_offset(offset: Side) const 🔗

Devuelve el offset para el Side especificado. Un método getter para offset_bottom, offset_left, offset_right y offset_top.


Vector2 get_parent_area_size() const 🔗

Devuelve la anchura/altura ocupada en el control parental.


Control get_parent_control() const 🔗

Devuelve el nodo de control del padre.


Rect2 get_rect() const 🔗

Devuelve la posición y el tamaño del control en el sistema de coordenadas del nodo que lo contiene. Véase position, scale y size.

Nota: Si rotation no es la rotación predeterminada, el tamaño resultante no es significativo.

Nota: Establecer Viewport.gui_snap_controls_to_pixels a true puede provocar imprecisiones de redondeo entre el control mostrado y el Rect2 devuelto.


Vector2 get_screen_position() const 🔗

Devuelve la posición de este Control en coordenadas globales de pantalla (es decir, teniendo en cuenta la posición de la ventana). Es útil principalmente para complementos (plugins) del editor.

Equivale a get_screen_transform().origin (ver CanvasItem.get_screen_transform()).

Ejemplo: Mostrar un menú emergente (popup) en la posición del ratón:

popup_menu.position = get_screen_position() + get_screen_transform().basis_xform(get_local_mouse_position())

# El código anterior es equivalente a:
popup_menu.position = get_screen_transform() * get_local_mouse_position()

popup_menu.reset_size()
popup_menu.popup()

Color get_theme_color(name: StringName, theme_type: StringName = &"") const 🔗

Devuelve un Color del primer Theme coincidente en el árbol si ese Theme tiene un elemento de color con el name y theme_type especificados. Si se omite theme_type, se utiliza el nombre de clase del control actual como tipo, o theme_type_variation si está definido. Si el tipo es un nombre de clase, también se comprueban sus clases padre, en orden de herencia. Si el tipo es una variación, se comprueban sus tipos base, en orden de dependencia, luego el nombre de clase del control y sus clases padre.

Para el control actual, primero se consideran sus sobrescrituras locales (ver add_theme_color_override()), luego su theme asignado. Después del control actual, se considera cada control padre y su theme asignado; los controles sin un theme asignado se omiten. Si no se encuentra ningún Theme coincidente en el árbol, se utilizan el Theme personalizado del proyecto (ver ProjectSettings.gui/theme/custom) y el Theme por defecto (ver ThemeDB).

func _ready():
    # Obtiene el color de fuente definido para la clase del Control actual, si existe.
    modulate = get_theme_color("font_color")
    # Obtiene el color de fuente definido para la clase Button.
    modulate = get_theme_color("font_color", "Button")

int get_theme_constant(name: StringName, theme_type: StringName = &"") const 🔗

Devuelve una constante del primer Theme coincidente en el árbol si ese Theme tiene un elemento constante con el name y el theme_type especificados.

Véase get_theme_color() para más detalles.


float get_theme_default_base_scale() const 🔗

Devuelve el valor de escala base predeterminado del primer Theme coincidente en el árbol si ese Theme tiene un valor Theme.default_base_scale válido.

Véase get_theme_color() para obtener más detalles.


Font get_theme_default_font() const 🔗

Devuelve la fuente predeterminada del primer Theme coincidente en el árbol si ese Theme tiene un valor Theme.default_font válido.

Véase get_theme_color() para obtener más detalles.


int get_theme_default_font_size() const 🔗

Devuelve el tamaño de fuente predeterminado del primer Theme coincidente en el árbol si ese Theme tiene un valor Theme.default_font_size válido.

Véase get_theme_color() para obtener más detalles.


Font get_theme_font(name: StringName, theme_type: StringName = &"") const 🔗

Devuelve una Font del primer Theme coincidente en el árbol si ese Theme tiene un elemento de fuente con el name y el theme_type especificados.

Véase get_theme_color() para obtener más detalles.


int get_theme_font_size(name: StringName, theme_type: StringName = &"") const 🔗

Devuelve un tamaño de fuente del primer Theme coincidente en el árbol si ese Theme tiene un elemento de tamaño de fuente con el name y el theme_type especificados.

Véase get_theme_color() para obtener más detalles.


Texture2D get_theme_icon(name: StringName, theme_type: StringName = &"") const 🔗

Devuelve un icono del primer Theme coincidente en el árbol si ese Theme tiene un elemento de icono con el name y el theme_type especificados.

Véase get_theme_color() para más detalles.


StyleBox get_theme_stylebox(name: StringName, theme_type: StringName = &"") const 🔗

Returns a StyleBox from the first matching Theme in the tree if that Theme has a stylebox item with the specified name and theme_type.

See get_theme_color() for details.


String get_tooltip(at_position: Vector2 = Vector2(0, 0)) const 🔗

Returns the tooltip text for the position at_position in the control's local coordinates, which will typically appear when the cursor is resting over this control. By default, it returns tooltip_text.

You can override _get_tooltip() to implement custom behavior for this method.

Note: If this method returns an empty String and _make_custom_tooltip() is not overridden, no tooltip is displayed.


void grab_click_focus() 🔗

Crea un InputEventMouseButton que intenta hacer clic en el control. Si el evento es recibido, el control obtiene el foco.

func _process(delta):
    grab_click_focus() # Al hacer clic en otro nodo Control, este nodo será clicado en su lugar.

void grab_focus(hide_focus: bool = false) 🔗

Steal the focus from another control and become the focused control (see focus_mode).

If hide_focus is true, the control will not visually show its focused state. Has no effect for LineEdit and TextEdit when ProjectSettings.gui/common/show_focus_state_on_pointer_event is set to Text Input Controls, or for any control when it is set to Always.

Note: Using this method together with Callable.call_deferred() makes it more reliable, especially when called inside Node._ready().


bool has_focus(ignore_hidden_focus: bool = false) const 🔗

Devuelve true si este es el control enfocado actualmente. Consulta focus_mode.

Si ignore_hidden_focus es true, los controles que tengan su foco oculto siempre devolverán false. El foco oculto ocurre automáticamente cuando los controles obtienen el foco mediante la entrada del ratón, o manualmente usando grab_focus() con hide_focus establecido en true.


bool has_theme_color(name: StringName, theme_type: StringName = &"") const 🔗

Devuelve true si hay un Theme coincidente en el árbol que tiene un elemento de color con el name y el theme_type especificados.

Véase get_theme_color() para más detalles.


bool has_theme_color_override(name: StringName) const 🔗

Devuelve true si hay una sobrescritura local para un Color de tema con el name especificado en este nodo Control.

Véase add_theme_color_override().


bool has_theme_constant(name: StringName, theme_type: StringName = &"") const 🔗

Devuelve true si hay un Theme coincidente en el árbol que tiene un elemento constante con el name y el theme_type especificados.

Véase get_theme_color() para más detalles.


bool has_theme_constant_override(name: StringName) const 🔗

Devuelve true si existe una sobrescritura local para una constante de tema con el name especificado en este nodo Control.

Véase add_theme_constant_override().


bool has_theme_font(name: StringName, theme_type: StringName = &"") const 🔗

Devuelve true si hay un Theme coincidente en el árbol que tiene un elemento de fuente con el name y el theme_type especificados.

Véase get_theme_color() para más detalles.


bool has_theme_font_override(name: StringName) const 🔗

Devuelve true si hay una sobrescritura local para una Font de tema con el name especificado en este nodo Control.

Véase add_theme_font_override().


bool has_theme_font_size(name: StringName, theme_type: StringName = &"") const 🔗

Devuelve true si hay un Theme coincidente en el árbol que tiene un elemento de tamaño de fuente con el name y el theme_type especificados.

Véase get_theme_color() para más detalles.


bool has_theme_font_size_override(name: StringName) const 🔗

Devuelve true si hay una sobrescritura local para un tamaño de fuente de tema con el name especificado en este nodo Control.

Véase add_theme_font_size_override().


bool has_theme_icon(name: StringName, theme_type: StringName = &"") const 🔗

Devuelve true si hay un Theme coincidente en el árbol que tiene un elemento de icono con el name y el theme_type especificados.

Véase get_theme_color() para más detalles.


bool has_theme_icon_override(name: StringName) const 🔗

Devuelve true si hay una sobrescritura local para un icono de tema con el name especificado en este nodo Control.

Véase add_theme_icon_override().


bool has_theme_stylebox(name: StringName, theme_type: StringName = &"") const 🔗

Devuelve true si hay un Theme coincidente en el árbol que tiene un elemento de stylebox con el name y el theme_type especificados.

Véase get_theme_color() para más detalles.


bool has_theme_stylebox_override(name: StringName) const 🔗

Devuelve true si hay una sobrescritura local para un StyleBox de tema con el name especificado en este nodo Control.

Véase add_theme_stylebox_override().


bool is_drag_successful() const 🔗

Devuelve true si una operación de arrastre es exitosa. Alternativa a Viewport.gui_is_drag_successful().

Mejor usado con Node.NOTIFICATION_DRAG_END.


bool is_layout_rtl() const 🔗

Devuelve true si el diseño es de derecha a izquierda. Véase también layout_direction.


void release_focus() 🔗

Give up the focus. No other control will be able to receive input.


void remove_theme_color_override(name: StringName) 🔗

Elimina una anulación local para un Color del tema con el name especificado, añadido previamente mediante add_theme_color_override() o a través del panel del Inspector.


void remove_theme_constant_override(name: StringName) 🔗

Elimina una sobrescritura local para una constante de tema con el name especificado, previamente añadida por add_theme_constant_override() o a través del dock Inspector.


void remove_theme_font_override(name: StringName) 🔗

Elimina una sobrescritura local para una Font de tema con el name especificado, previamente añadida por add_theme_font_override() o a través del dock Inspector.


void remove_theme_font_size_override(name: StringName) 🔗

Elimina una sobrescritura local para un tamaño de fuente de tema con el name especificado, previamente añadido por add_theme_font_size_override() o a través del dock Inspector.


void remove_theme_icon_override(name: StringName) 🔗

Removes a local override for a theme icon with the specified name previously added by add_theme_icon_override() or via the Inspector dock.


void remove_theme_stylebox_override(name: StringName) 🔗

Elimina una sobrescritura local para un StyleBox de tema con el name especificado, previamente añadido por add_theme_stylebox_override() o a través del dock Inspector.


void reset_size() 🔗

Restablece el tamaño a get_combined_minimum_size(). Esto equivale a llamar a set_size(Vector2()) (o cualquier tamaño por debajo del mínimo).


void set_anchor(side: Side, anchor: float, keep_offset: bool = false, push_opposite_anchor: bool = true) 🔗

Establece el anclaje para el Side especificado en anchor. Un método setter para anchor_bottom, anchor_left, anchor_right y anchor_top.

Si keep_offset es true, los offsets no se actualizarán después de esta operación.

Si push_opposite_anchor es true y el anclaje opuesto se superpone a este anclaje, el opuesto tendrá su valor sobrescrito. Por ejemplo, al establecer el anclaje izquierdo en 1 y el anclaje derecho tiene un valor de 0.5, el anclaje derecho también obtendrá un valor de 1. Si push_opposite_anchor fuera false, el anclaje izquierdo obtendría el valor 0.5.


void set_anchor_and_offset(side: Side, anchor: float, offset: float, push_opposite_anchor: bool = false) 🔗

Funciona igual que set_anchor(), pero en lugar del argumento keep_offset y la actualización automática del dessplazamiento, te permite establecer el desplazamiento tú mismo (véase set_offset()).


void set_anchors_and_offsets_preset(preset: LayoutPreset, resize_mode: LayoutPresetMode = 0, margin: int = 0) 🔗

Establece tanto el preset del ancla como el preset del desplazamiento. Véase set_anchors_preset() y set_offsets_preset().


void set_anchors_preset(preset: LayoutPreset, keep_offsets: bool = false) 🔗

Establece los anclajes a un preset del enum LayoutPreset. Esto es el equivalente en código a usar el menú de Layout en el editor 2D.

Si keep_offsets es true, la posición del control también se actualizará.


void set_begin(position: Vector2) 🔗

Establece offset_left y offset_top al mismo tiempo. Equivale a cambiar position.


void set_drag_forwarding(drag_func: Callable, can_drop_func: Callable, drop_func: Callable) 🔗

Establece los callables dados para ser usados en lugar de los métodos virtuales de arrastrar y soltar propios del control. Si un callable está vacío, su respectivo método virtual se usa de forma normal.

Los argumentos para cada callable deben ser exactamente los mismos que sus respectivos métodos virtuales, que serían:


void set_drag_preview(control: Control) 🔗

Muestra el control dado en la posición del puntero del ratón. Un buen momento para llamar a este método es en _get_drag_data(). El control no debe estar en el árbol de escenas. No debes liberar (free) el control, y no debes mantener una referencia al mismo más allá de la duración del arrastre. Se eliminará automáticamente una vez que el arrastre haya terminado.

@export var color = Color(1, 0, 0, 1)

func _get_drag_data(position):
    # Use un control que no esté en el árbol
    var cpb = ColorPickerButton.new()
    cpb.color = color
    cpb.size = Vector2(50, 50)
    set_drag_preview(cpb)
    return color

void set_end(position: Vector2) 🔗

Establece offset_right y offset_bottom al mismo tiempo.


void set_focus_neighbor(side: Side, neighbor: NodePath) 🔗

Establece el vecino de enfoque para el Side especificado en la ruta de nodo neighbor del Control. Es un método setter para focus_neighbor_bottom, focus_neighbor_left, focus_neighbor_right y focus_neighbor_top.


void set_global_position(position: Vector2, keep_offsets: bool = false) 🔗

Establece la global_position a la position dada.

Si keep_offsets es true, los anclajes del control se actualizarán en lugar de los desplazamientos.


void set_offset(side: Side, offset: float) 🔗

Establece el offset para el Side especificado en offset. Un método setter para offset_bottom, offset_left, offset_right y offset_top.


void set_offsets_preset(preset: LayoutPreset, resize_mode: LayoutPresetMode = 0, margin: int = 0) 🔗

Establece los offsets a un preset del enum LayoutPreset. Esto es el equivalente en código a usar el menú de Layout en el editor 2D.

Usa el parámetro resize_mode con constantes del enum LayoutPresetMode para determinar mejor el tamaño resultante del Control. El tamaño constante será ignorado si se usa con presets que cambian el tamaño, p. ej. PRESET_LEFT_WIDE.

Usa el parámetro margin para determinar el espacio entre el Control y los bordes.


void set_position(position: Vector2, keep_offsets: bool = false) 🔗

Establece la position a la position dada.

Si keep_offsets es true, los anclajes del control se actualizarán en lugar de los desplazamientos.


void set_size(size: Vector2, keep_offsets: bool = false) 🔗

Establece el tamaño (véase size).

Si keep_offsets es true, los anclajes del control se actualizarán en lugar de los desplazamientos.


void update_maximum_size() 🔗

Invalidates the maximum size cache in this node and in parent nodes up to top level. Intended to be used with get_maximum_size() when the return value is changed. Setting custom_maximum_size directly calls this method automatically.

Note: Calling this method also calls update_minimum_size() since the combined minimum size may be affected by the maximum size change.


void update_minimum_size() 🔗

Invalidates the minimum size cache in this node and in parent nodes up to top level. Intended to be used with get_minimum_size() when the return value is changed. Setting custom_minimum_size directly calls this method automatically.


void warp_mouse(position: Vector2) 🔗

Mueve el cursor del ratón a position, relativo a position de este Control.

Nota: warp_mouse() solo es compatible con Windows, macOS y Linux. No tiene ningún efecto en Android, iOS y Web.