LineEdit
Hereda: Control < CanvasItem < Node < Object
Un campo de entrada para texto de una sola línea.
Descripción
LineEdit proporciona un campo de entrada para editar una sola línea de texto.
Cuando el control LineEdit está enfocado usando las teclas de flecha del teclado, solo ganará el foco y no entrará en el modo de edición.
Para entrar en el modo de edición, haz clic en el control con el ratón, mira también keep_editing_on_text_submit.
Para salir del modo de edición, pulsa las acciones
ui_text_submitoui_cancel(por defecto Escape).Véase edit(), unedit(), is_editing() y editing_toggled para obtener más información.
Al introducir texto, es posible insertar caracteres especiales utilizando códigos Unicode, OEM o Windows alt:
Para introducir puntos de código Unicode, mantén pulsado Alt y escribe el punto de código en el teclado numérico. Por ejemplo, para introducir el carácter
á(U+00E1), mantén pulsado Alt y escribe +E1 en el teclado numérico (los ceros iniciales pueden omitirse).Para introducir puntos de código OEM, mantén pulsado Alt y escribe el código en el teclado numérico. Por ejemplo, para introducir el carácter
á(OEM 160), mantén pulsado Alt y escribe160en el teclado numérico.Para introducir puntos de código de Windows, mantén pulsado Alt y escribe el código en el teclado numérico. Por ejemplo, para introducir el carácter
á(Windows 0225), mantén pulsado Alt y escribe 0, 2, 2, 5 en el teclado numérico. El cero inicial aquí no debe omitirse, ya que así es como los puntos de código de Windows se distinguen de los puntos de código OEM.
Importante:
Enfocar el LineEdit con
ui_focus_next(por defecto Tab) oui_focus_prev(por defecto Shift + Tab) o Control.grab_focus() todavía entra en modo de edición (por compatibilidad).
LineEdit incluye muchos atajos integrados que siempre están disponibles (Ctrl aquí se asigna a Cmd en macOS):
Ctrl + C: Copiar
Ctrl + X: Cortar
Ctrl + V o Ctrl + Y: Pegar/"tirar"
Ctrl + Z: Deshacer
Ctrl + ~: Intercambiar la dirección de entrada.
Ctrl + Shift + Z: Rehacer
Ctrl + U: Borrar el texto desde la posición del cursor hasta el principio de la línea
Ctrl + K: Borrar el texto desde la posición del cursor hasta el final de la línea
Ctrl + A: Seleccionar todo el texto
Up Arrow/Down Arrow: Mueve el cursor al principio/final de la línea
En macOS, hay algunos atajos de teclado adicionales disponibles:
Cmd + F: Igual que Right Arrow, mueve el cursor un carácter a la derecha
Cmd + B: Igual que Left Arrow, mueve el cursor un carácter a la izquierda
Cmd + P: Igual que Up Arrow, mueve el cursor a la línea anterior
Cmd + N: Igual que Down Arrow, mueve el cursor a la línea siguiente
Cmd + D: Igual que Delete, borra el carácter a la derecha del cursor
Cmd + H: Igual que Backspace, borra el carácter a la izquierda del cursor
Cmd + A: Igual que Home, mueve el cursor al principio de la línea
Cmd + E: Igual que End, mueve el cursor al final de la línea
Cmd + Left Arrow: Igual que Home, mueve el cursor al principio de la línea
Cmd + Right Arrow: Igual que End, mueve el cursor al final de la línea
Nota: Los atajos de movimiento del cursor listados arriba no se ven afectados por shortcut_keys_enabled.
Propiedades
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
focus_mode |
|
|
|
||
|
||
|
||
|
||
|
||
mouse_default_cursor_shape |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Métodos
void |
|
void |
|
void |
clear() |
void |
|
void |
delete_text(from_column: int, to_column: int) |
void |
deselect() |
void |
|
get_menu() const |
|
get_next_composite_character_column(column: int) const |
|
get_previous_composite_character_column(column: int) const |
|
get_scroll_offset() const |
|
get_selection_from_column() const |
|
get_selection_to_column() const |
|
has_ime_text() const |
|
has_redo() const |
|
has_selection() const |
|
has_undo() const |
|
void |
insert_text_at_caret(text: String) |
is_editing() const |
|
is_menu_visible() const |
|
void |
menu_option(option: int) |
void |
|
void |
|
void |
unedit() |
Propiedades del Tema
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Señales
editing_toggled(toggled_on: bool) 🔗
Emitida cuando LineEdit cambia dentro o fuera del modo de edición.
text_change_rejected(rejected_substring: String) 🔗
Emitida cuando se añade texto que supera el max_length. El texto añadido se trunca para ajustarse a max_length, y la parte que no cabe se pasa como argumento rejected_substring.
text_changed(new_text: String) 🔗
Emitida cuando el texto cambia.
text_submitted(new_text: String) 🔗
Emitida cuando el usuario pulsa la acción ui_text_submit (por defecto: Enter o Kp Enter) mientras el LineEdit tiene el foco.
Enumeraciones
Corta (copia y borra) el texto seleccionado.
Copia el texto seleccionado.
Pega el texto del portapapeles sobre el texto seleccionado (o en la posición del cursor).
Los caracteres de escape no imprimibles se eliminan automáticamente del portapapeles del sistema operativo a través del String.strip_escapes().
Borra todo el texto LineEdit.
Selecciona todo el texto LineEdit.
Deshace la acción anterior.
Invierte la última acción de deshacer.
ID del submenú "Dirección de escritura del texto".
Establece la dirección del texto como heredada.
Establece la dirección del texto en automática.
Establece la dirección del texto de izquierda a derecha.
Establece la dirección del texto de derecha a izquierda.
Alterna la visualización de los caracteres de control.
ID del submenú "Insertar carácter de control".
Inserta el carácter de marca de izquierda a derecha (LRM).
Inserta el carácter de marca de derecha a izquierda (RLM).
Inserta el carácter de inicio de incrustación de izquierda a derecha (LRE).
Inserta el carácter de inicio de incrustación de derecha a izquierda (RLE).
Inserta el carácter de inicio de sobrescritura de izquierda a derecha (LRO).
Inserta el carácter de inicio de sobrescritura de derecha a izquierda (RLO).
Inserta el carácter de formato de dirección emergente (PDF).
Inserta el carácter de marca de letra árabe (ALM).
Inserta el carácter de aislamiento de izquierda a derecha (LRI).
Inserta el carácter de aislamiento de derecha a izquierda (RLI).
Inserta el primer carácter de aislamiento fuerte (FSI).
Inserta el carácter de aislamiento de dirección emergente (PDI).
Inserta el carácter de unión de ancho cero (ZWJ).
Inserta el carácter de no unión de ancho cero (ZWNJ).
Inserta el carácter de unión de palabras (WJ).
Inserta el carácter de guion suave (SHY).
Abre el selector de emojis y símbolos del sistema.
Representa el tamaño del enum MenuItems.
enum VirtualKeyboardType: 🔗
VirtualKeyboardType KEYBOARD_TYPE_DEFAULT = 0
Teclado virtual de texto por defecto.
VirtualKeyboardType KEYBOARD_TYPE_MULTILINE = 1
Teclado virtual multilínea.
VirtualKeyboardType KEYBOARD_TYPE_NUMBER = 2
Teclado numérico virtual, útil para ingresar pines.
VirtualKeyboardType KEYBOARD_TYPE_NUMBER_DECIMAL = 3
Teclado numérico virtual, útil para introducir números fraccionarios.
VirtualKeyboardType KEYBOARD_TYPE_PHONE = 4
Teclado numérico de teléfono virtual.
VirtualKeyboardType KEYBOARD_TYPE_EMAIL_ADDRESS = 5
Teclado virtual con teclas adicionales para ayudar a escribir direcciones de correo electrónico.
VirtualKeyboardType KEYBOARD_TYPE_PASSWORD = 6
Teclado virtual para introducir una contraseña. En la mayoría de las plataformas, esto debería desactivar el autocompletado y la autocapitalización.
Nota: Esto no es compatible en la Web. En su lugar, se comporta de forma idéntica a KEYBOARD_TYPE_DEFAULT.
VirtualKeyboardType KEYBOARD_TYPE_URL = 7
Teclado virtual con teclas adicionales para ayudar a escribir URLs.
enum ExpandMode: 🔗
ExpandMode EXPAND_MODE_ORIGINAL_SIZE = 0
Usa el tamaño original para el icono derecho.
ExpandMode EXPAND_MODE_FIT_TO_TEXT = 1
Escala el tamaño del icono derecho para que coincida con el tamaño del texto.
ExpandMode EXPAND_MODE_FIT_TO_LINE_EDIT = 2
Escala el icono derecho para que se ajuste al LineEdit.
Descripciones de Propiedades
HorizontalAlignment alignment = 0 🔗
void set_horizontal_alignment(value: HorizontalAlignment)
HorizontalAlignment get_horizontal_alignment()
Alineación horizontal del texto.
bool backspace_deletes_composite_character_enabled = false 🔗
void set_backspace_deletes_composite_character_enabled(value: bool)
bool is_backspace_deletes_composite_character_enabled()
Si es true, y caret_mid_grapheme es false, la tecla de retroceso elimina un carácter compuesto completo como ❤️🩹, en lugar de eliminar parte del carácter compuesto.
Si es true, el cursor visual parpadea.
float caret_blink_interval = 0.65 🔗
El intervalo en el que el cursor parpadea (en segundos).
Posición de la columna del cursor dentro de la LineEdit. Cuando se configura, el texto puede desplazarse para acomodarlo.
bool caret_force_displayed = false 🔗
Si es true, el LineEdit siempre mostrará el cursor, incluso si no está en modo de edición o si se pierde el foco.
bool caret_mid_grapheme = false 🔗
Permite mover el cursor, seleccionar y eliminar los componentes individuales de caracteres compuestos.
Nota: Retroceso siempre elimina los componentes individuales de caracteres compuestos.
bool clear_button_enabled = false 🔗
Si es true, el LineEdit mostrará un botón de borrado si text no está vacío, que puede utilizarse para borrar el texto rápidamente.
Si es true, el menú contextual aparecerá al hacer clic con el botón derecho del ratón.
bool deselect_on_focus_loss_enabled = true 🔗
Si es true, el texto seleccionado se deseleccionará cuando se pierda el foco.
bool drag_and_drop_selection_enabled = true 🔗
Si es true, permite arrastrar y soltar el texto seleccionado.
bool draw_control_chars = false 🔗
Si es true, se muestran los caracteres de control.
Si es false, el texto existente no puede ser modificado y no se puede añadir un nuevo texto.
Si es true, el menú "Emojis y símbolos" está habilitado.
bool expand_to_text_length = false 🔗
Si es true, el ancho de LineEdit aumentará para permanecer más tiempo que el text.No se comprimirá si el text se acorta.
Si es true, LineEdit no muestra la decoración.
ExpandMode icon_expand_mode = 0 🔗
void set_icon_expand_mode(value: ExpandMode)
ExpandMode get_icon_expand_mode()
Define el comportamiento de escalado del right_icon.
bool keep_editing_on_text_submit = false 🔗
Si es true, el LineEdit no saldrá del modo de edición cuando se envíe el texto pulsando la acción ui_text_submit (por defecto: Enter o Kp Enter).
Language code used for line-breaking and text shaping algorithms. If left empty, the current locale is used instead.
Maximum number of characters that can be entered inside the LineEdit. If 0, there is no limit.
When a limit is defined, characters that would exceed max_length are truncated. This happens both for existing text contents when setting the max length, or for new text inserted in the LineEdit, including pasting.
If any input text is truncated, the text_change_rejected signal is emitted with the truncated substring as a parameter:
text = "Hello world"
max_length = 5
# `text` becomes "Hello".
max_length = 10
text += " goodbye"
# `text` becomes "Hello good".
# `text_change_rejected` is emitted with "bye" as a parameter.
Text = "Hello world";
MaxLength = 5;
// `Text` becomes "Hello".
MaxLength = 10;
Text += " goodbye";
// `Text` becomes "Hello good".
// `text_change_rejected` is emitted with "bye" as a parameter.
bool middle_mouse_paste_enabled = true 🔗
Si es false, se deshabilitará el uso del botón central del ratón para pegar el contenido del portapapeles.
Nota: Este método solo está implementado en Linux.
String placeholder_text = "" 🔗
El texto se muestra cuando la LineEdit está vacía. Es no el valor por defecto de LineEdit (véase el text).
Establece el icono que aparecerá en el extremo derecho de la LineEdit si no hay text, o siempre, si clear_button_enabled está establecido en false.
float right_icon_scale = 1.0 🔗
Relación de escala del icono cuando icon_expand_mode está configurado a EXPAND_MODE_FIT_TO_LINE_EDIT.
Si es true, cada carácter se sustituye por el carácter secreto (véase secret_character).
String secret_character = "•" 🔗
El carácter que se usará para enmascarar la entrada secreta. Solo se puede utilizar un único carácter como carácter secreto. Si tiene más de un carácter, solo se utilizará el primero. Si está vacío, se utilizará un espacio en su lugar.
bool select_all_on_focus = false 🔗
Si es true, el LineEdit seleccionará todo el texto cuando obtenga el foco.
bool selecting_enabled = true 🔗
Si es false, es imposible seleccionar el texto usando el ratón o el teclado.
bool shortcut_keys_enabled = true 🔗
Si es true, las teclas de atajo para los elementos del menú contextual están habilitadas, incluso si el menú contextual está desactivado.
StructuredTextParser structured_text_bidi_override = 0 🔗
void set_structured_text_bidi_override(value: StructuredTextParser)
StructuredTextParser get_structured_text_bidi_override()
Establece la sobrescritura del algoritmo BiDi para el texto estructurado.
Array structured_text_bidi_override_options = [] 🔗
void set_structured_text_bidi_override_options(value: Array)
Array get_structured_text_bidi_override_options()
Establece opciones adicionales para la sobrescritura BiDi.
Valor de la strting de la LineEdit.
Nota: Cambiar el texto usando esta propiedad no emitirá la señal text_changed.
TextDirection text_direction = 0 🔗
void set_text_direction(value: TextDirection)
TextDirection get_text_direction()
Dirección base de escritura del texto.
bool virtual_keyboard_enabled = true 🔗
Si es true, el teclado virtual nativo se habilitará en las plataformas que lo soporten.
bool virtual_keyboard_show_on_focus = true 🔗
Si es true, el teclado virtual nativo se mostrará en los eventos de foco en las plataformas que lo soporten.
VirtualKeyboardType virtual_keyboard_type = 0 🔗
void set_virtual_keyboard_type(value: VirtualKeyboardType)
VirtualKeyboardType get_virtual_keyboard_type()
Especifica el tipo de teclado virtual que se mostrará.
Descripciones de Métodos
void apply_ime() 🔗
Applies text from the Input Method Editor (IME) and closes the IME if it is open.
void cancel_ime() 🔗
Closes the Input Method Editor (IME) if it is open. Any text in the IME will be lost.
void clear() 🔗
Borra text de LineEdit.
void delete_char_at_caret() 🔗
Elimina un carácter en la posición actual del cursor (equivalente a presionar Suprimir).
void delete_text(from_column: int, to_column: int) 🔗
Deletes a section of the text going from position from_column to to_column. Both parameters should be within the text's length.
void deselect() 🔗
Borra la selección actual.
void edit(hide_focus: bool = false) 🔗
Allows entering edit mode whether the LineEdit is focused or not. If hide_focus is true, the focused state will not be shown (see Control.grab_focus()).
See also keep_editing_on_text_submit.
Returns the PopupMenu of this LineEdit. By default, this menu is displayed when right-clicking on the LineEdit.
You can add custom menu items or remove standard ones. Make sure your IDs don't conflict with the standard ones (see MenuItems). For example:
func _ready():
var menu = get_menu()
# Remove all items after "Redo".
menu.item_count = menu.get_item_index(MENU_REDO) + 1
# Add custom items.
menu.add_separator()
menu.add_item("Insert Date", MENU_MAX + 1)
# Connect callback.
menu.id_pressed.connect(_on_item_pressed)
func _on_item_pressed(id):
if id == MENU_MAX + 1:
insert_text_at_caret(Time.get_date_string_from_system())
public override void _Ready()
{
var menu = GetMenu();
// Remove all items after "Redo".
menu.ItemCount = menu.GetItemIndex(LineEdit.MenuItems.Redo) + 1;
// Add custom items.
menu.AddSeparator();
menu.AddItem("Insert Date", LineEdit.MenuItems.Max + 1);
// Add event handler.
menu.IdPressed += OnItemPressed;
}
public void OnItemPressed(int id)
{
if (id == LineEdit.MenuItems.Max + 1)
{
InsertTextAtCaret(Time.GetDateStringFromSystem());
}
}
Warning: This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their Window.visible property.
int get_next_composite_character_column(column: int) const 🔗
Devuelve la columna correcta al final de un carácter compuesto como ❤️🩹 (corazón reparador; Unicode: U+2764 U+FE0F U+200D U+1FA79) que está compuesto por más de un punto de código Unicode, si el cursor está al principio del carácter compuesto. También devuelve la columna correcta con el cursor a mitad de grafema y para caracteres no compuestos.
Nota: Para comprobar la ubicación del cursor, usa get_next_composite_character_column(get_caret_column())
int get_previous_composite_character_column(column: int) const 🔗
Devuelve la columna correcta al principio de un carácter compuesto como ❤️🩹 (corazón reparador; Unicode: U+2764 U+FE0F U+200D U+1FA79) que está compuesto por más de un punto de código Unicode, si el cursor está al final del carácter compuesto. También devuelve la columna correcta con el cursor a mitad de grafema y para caracteres no compuestos.
Nota: Para comprobar la ubicación del cursor, usa get_previous_composite_character_column(get_caret_column())
float get_scroll_offset() const 🔗
Devuelve el desplazamiento debido a caret_column, como un número de caracteres.
Devuelve el texto dentro de la selección.
int get_selection_from_column() const 🔗
Devuelve la columna de inicio de la selección.
int get_selection_to_column() const 🔗
Devuelve la columna de final de selección.
Devuelve true si el usuario tiene texto en el Editor de métodos de entrada (IME).
Devuelve true si una acción de "redo" está disponible.
Devuelve true si el usuario ha seleccionado texto.
Devuelve true si se dispone de una acción de "deshacer".
void insert_text_at_caret(text: String) 🔗
Inserta text en el cursor. Si el valor resultante es mayor que max_length, no pasa nada.
Devuelve si se está editando LineEdit.
Devuelve si el menú está visible. Utiliza esto en lugar de get_menu().visible para mejorar el rendimiento (para que se evite la creación del menú).
Ejecuta una acción determinada según se define en el enum MenuItems.
void select(from: int = 0, to: int = -1) 🔗
Selecciona los caracteres dentro de LineEdit entre from y to. Por defecto, from está al principio y to al final.
text = "Bienvenido"
select() # Seleccionará "Bienvenido".
select(4) # Seleccionará "venido".
select(2, 5) # Seleccionará "env".
Text = "Bienvenido";
Select(); // Seleccionará "Bienvenido".
Select(4); // Seleccionará "venido".
Select(2, 5); // Seleccionará "env".
void select_all() 🔗
Selecciona toda la String.
void unedit() 🔗
Permite salir del modo de edición conservando el foco.
Descripciones de las propiedades del tema
Color caret_color = Color(0.95, 0.95, 0.95, 1) 🔗
El color del cursor (de texto) de LineEdit. Se puede establecer en un color totalmente transparente para ocultar el cursor por completo.
Color clear_button_color = Color(0.875, 0.875, 0.875, 1) 🔗
Color utilizado como tinte predeterminado para el botón de despejar.
Color clear_button_color_pressed = Color(1, 1, 1, 1) 🔗
Color usado para el botón de borrado cuando se presiona.
Color font_color = Color(0.875, 0.875, 0.875, 1) 🔗
Color de fuente predeterminado.
Color font_outline_color = Color(0, 0, 0, 1) 🔗
El tono del contorno del texto del LineEdit.
Color font_placeholder_color = Color(0.875, 0.875, 0.875, 0.6) 🔗
Color de fuente para placeholder_text.
Color font_selected_color = Color(1, 1, 1, 1) 🔗
Color de fuente para el texto seleccionado (dentro del rectángulo de selección).
Color font_uneditable_color = Color(0.875, 0.875, 0.875, 0.5) 🔗
El color de la fuente cuando la edición está desactivada.
Color selection_color = Color(0.5, 0.5, 0.5, 1) 🔗
Color del rectángulo de selección.
El ancho del cursor en píxeles. Se pueden usar valores mayores para mejorar la accesibilidad, asegurando que el cursor sea fácilmente visible, o para asegurar la consistencia con un tamaño de fuente grande.
int minimum_character_width = 4 🔗
Espacio horizontal mínimo para el texto (sin contar el botón de borrar y los márgenes de contenido). Este valor se mide en el conteo de caracteres 'M' (es decir, esta cantidad de caracteres 'M' puede mostrarse sin desplazamiento).
The size of the text outline.
Note: If using a font with FontFile.multichannel_signed_distance_field enabled, its FontFile.msdf_pixel_range must be set to at least twice the value of outline_size for outline rendering to look correct. Otherwise, the outline may appear to be cut off earlier than intended.
Fuente usada para el texto.
Tamaño de fuente del texto de LineEdit.
La textura para el botón de despejar. Véase clear_button_enabled.
Fondo utilizado cuando LineEdit tiene el foco de la GUI. El StyleBox de focus se muestra sobre el StyleBox base, por lo que se debe usar un StyleBox parcialmente transparente para asegurar que el StyleBox base permanezca visible. Un StyleBox que representa un contorno o un subrayado funciona bien para este propósito. Para desactivar el efecto visual de foco, asigna un recurso StyleBoxEmpty. Ten en cuenta que desactivar el efecto visual de foco perjudicará la usabilidad de la navegación con teclado/controlador, por lo que no se recomienda por razones de accesibilidad.
Fondo predeterminado para la LineEdit.
Fondo utilizado cuando LineEdit está en modo de sólo lectura (editable está configurado como false).