RichTextLabel
Hereda: Control < CanvasItem < Node < Object
Un control para mostrar texto que puede contener diferentes estilos de fuente, imágenes y formato básico.
Descripción
Un control para mostrar texto que puede contener fuentes personalizadas, imágenes y formato básico. RichTextLabel gestiona estos como una pila de etiquetas interna. También se adapta a los anchos/altos dados.
Nota: newline(), push_paragraph(), "\n", "\r\n", la etiqueta p y las etiquetas de alineación inician un nuevo párrafo. Cada párrafo se procesa de forma independiente, en su propio contexto BiDi. Si deseas forzar el ajuste de línea dentro del párrafo, se puede usar cualquier otro carácter de salto de línea, por ejemplo, Salto de página (U+000C), Línea siguiente (U+0085), Separador de línea (U+2028).
Nota: Las asignaciones a text borran la pila de etiquetas y la reconstruyen a partir del contenido de la propiedad. Cualquier edición realizada en text borrará las ediciones anteriores realizadas desde otras fuentes manuales como append_text() y los métodos push_* / pop().
Nota: RichTextLabel no admite etiquetas BBCode entrelazadas. Por ejemplo, en lugar de usar [b]bold[i]bold italic[/b]italic[/i], usa [b]bold[i]bold italic[/i][/b][i]italic[/i].
Nota: Las funciones push_*/pop_* no afectarán a BBCode.
Nota: Mientras bbcode_enabled esté habilitado, las etiquetas de alineación como [center] tendrán prioridad sobre la configuración horizontal_alignment que determina la alineación de texto predeterminada.
Tutoriales
Propiedades
|
||
BitField[LineBreakFlag] |
|
|
|
||
clip_contents |
|
|
|
||
|
||
|
||
|
||
|
||
focus_mode |
|
|
|
||
|
||
BitField[JustificationFlag] |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Métodos
void |
add_hr(width: int = 90, height: int = 2, color: Color = Color(1, 1, 1, 1), alignment: HorizontalAlignment = 1, width_in_percent: bool = true, height_in_percent: bool = false) |
void |
add_image(image: Texture2D, width: int = 0, height: int = 0, color: Color = Color(1, 1, 1, 1), inline_align: InlineAlignment = 5, region: Rect2 = Rect2(0, 0, 0, 0), key: Variant = null, pad: bool = false, tooltip: String = "", width_in_percent: bool = false, height_in_percent: bool = false, alt_text: String = "") |
void |
|
void |
append_text(bbcode: String) |
void |
clear() |
void |
deselect() |
get_character_line(character: int) |
|
get_character_paragraph(character: int) |
|
get_content_height() const |
|
get_content_width() const |
|
get_line_count() const |
|
get_line_height(line: int) const |
|
get_line_offset(line: int) |
|
get_line_range(line: int) |
|
get_line_width(line: int) const |
|
get_menu() const |
|
get_paragraph_count() const |
|
get_paragraph_offset(paragraph: int) |
|
get_parsed_text() const |
|
get_selected_text() const |
|
get_selection_from() const |
|
get_selection_line_offset() const |
|
get_selection_to() const |
|
get_total_character_count() const |
|
get_visible_content_rect() const |
|
get_visible_line_count() const |
|
get_visible_paragraph_count() const |
|
void |
install_effect(effect: Variant) |
invalidate_paragraph(paragraph: int) |
|
is_finished() const |
|
is_menu_visible() const |
|
is_ready() const |
|
void |
menu_option(option: int) |
void |
newline() |
void |
parse_bbcode(bbcode: String) |
parse_expressions_for_values(expressions: PackedStringArray) |
|
void |
pop() |
void |
pop_all() |
void |
|
void |
push_bgcolor(bgcolor: Color) |
void |
|
void |
|
void |
|
void |
push_color(color: Color) |
void |
|
void |
push_customfx(effect: RichTextEffect, env: Dictionary) |
void |
push_dropcap(string: String, font: Font, size: int, dropcap_margins: Rect2 = Rect2(0, 0, 0, 0), color: Color = Color(1, 1, 1, 1), outline_size: int = 0, outline_color: Color = Color(0, 0, 0, 0)) |
void |
push_fgcolor(fgcolor: Color) |
void |
|
void |
push_font_size(font_size: int) |
void |
|
void |
push_indent(level: int) |
void |
|
void |
push_language(language: String) |
void |
push_list(level: int, type: ListType, capitalize: bool, bullet: String = "•") |
void |
push_meta(data: Variant, underline_mode: MetaUnderline = 1, tooltip: String = "") |
void |
|
void |
|
void |
push_outline_color(color: Color) |
void |
push_outline_size(outline_size: int) |
void |
push_paragraph(alignment: HorizontalAlignment, base_direction: TextDirection = 0, language: String = "", st_parser: StructuredTextParser = 0, justification_flags: BitField[JustificationFlag] = 163, tab_stops: PackedFloat32Array = PackedFloat32Array()) |
void |
push_strikethrough(color: Color = Color(0, 0, 0, 0)) |
void |
push_table(columns: int, inline_align: InlineAlignment = 0, align_to_row: int = -1, name: String = "") |
void |
push_underline(color: Color = Color(0, 0, 0, 0)) |
void |
|
remove_paragraph(paragraph: int, no_invalidate: bool = false) |
|
void |
scroll_to_line(line: int) |
void |
scroll_to_paragraph(paragraph: int) |
void |
|
void |
|
void |
set_cell_border_color(color: Color) |
void |
set_cell_padding(padding: Rect2) |
void |
set_cell_row_background_color(odd_row_bg: Color, even_row_bg: Color) |
void |
set_cell_size_override(min_size: Vector2, max_size: Vector2) |
void |
set_table_column_expand(column: int, expand: bool, ratio: int = 1, shrink: bool = true) |
void |
set_table_column_name(column: int, name: String) |
void |
update_image(key: Variant, mask: BitField[ImageUpdateMask], image: Texture2D, width: int = 0, height: int = 0, color: Color = Color(1, 1, 1, 1), inline_align: InlineAlignment = 5, region: Rect2 = Rect2(0, 0, 0, 0), pad: bool = false, tooltip: String = "", width_in_percent: bool = false, height_in_percent: bool = false) |
Propiedades del Tema
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Señales
finished() 🔗
Se activa cuando el documento se ha cargado por completo.
Nota: Esto puede ocurrir antes de que el texto se procese para su dibujo. Los valores de desplazamiento pueden no ser válidos hasta que el documento se dibuje por primera vez después de esta señal.
Triggered when the user clicks on content between meta (URL) tags. If the meta is defined in BBCode, e.g. [url={"key": "value"}]Text[/url], then the parameter for this signal will always be a String type. If a particular type or an object is desired, the push_meta() method must be used to manually insert the data into the tag stack. Alternatively, you can convert the String input to the desired type based on its contents (such as calling JSON.parse() on it).
For example, the following method can be connected to meta_clicked to open clicked URLs using the user's default web browser:
# This assumes RichTextLabel's `meta_clicked` signal was connected to
# the function below using the signal connection dialog.
func _richtextlabel_on_meta_clicked(meta):
# `meta` is of Variant type, so convert it to a String to avoid script errors at run-time.
OS.shell_open(str(meta))
meta_hover_ended(meta: Variant) 🔗
Se activa cuando el ratón sale de una meta etiqueta.
meta_hover_started(meta: Variant) 🔗
Se activa cuando el ratón sale de una meta etiqueta.
Enumeraciones
enum ListType: 🔗
ListType LIST_NUMBERS = 0
Cada elemento de la lista tiene un marcador numérico.
ListType LIST_LETTERS = 1
Cada elemento de la lista tiene un marcador de letras.
ListType LIST_ROMAN = 2
Cada elemento de la lista tiene un marcador numérico romano.
ListType LIST_DOTS = 3
Cada elemento de la lista tiene un marcador de círculo lleno.
Copia el texto seleccionado.
Selecciona todo el texto del RichTextLabel.
Representa el tamaño del enum MenuItems.
enum MetaUnderline: 🔗
MetaUnderline META_UNDERLINE_NEVER = 0
La metaetiqueta no muestra un subrayado, incluso si meta_underlined es true.
MetaUnderline META_UNDERLINE_ALWAYS = 1
Si meta_underlined es true, la metaetiqueta siempre muestra un subrayado.
MetaUnderline META_UNDERLINE_ON_HOVER = 2
Si meta_underlined es true, la metaetiqueta muestra un subrayado cuando el cursor del ratón está sobre ella.
flags ImageUpdateMask: 🔗
ImageUpdateMask UPDATE_TEXTURE = 1
Si este bit está activado, update_image() cambia la textura de la imagen.
ImageUpdateMask UPDATE_SIZE = 2
Si este bit está activado, update_image() cambia el tamaño de la imagen.
ImageUpdateMask UPDATE_COLOR = 4
Si este bit está activado, update_image() cambia el color de la imagen.
ImageUpdateMask UPDATE_ALIGNMENT = 8
Si este bit está activado, update_image() cambia la alineación en línea de la imagen.
ImageUpdateMask UPDATE_REGION = 16
Si este bit está activado, update_image() cambia la región de la textura de la imagen.
ImageUpdateMask UPDATE_PAD = 32
Si este bit está activado, update_image() cambia el relleno de la imagen.
ImageUpdateMask UPDATE_TOOLTIP = 64
Si este bit está activado, update_image() cambia la información sobre herramientas de la imagen.
ImageUpdateMask UPDATE_WIDTH_IN_PERCENT = 128
Si este bit está activado, update_image() cambia el ancho de la imagen de/a porcentajes.
Descripciones de Propiedades
AutowrapMode autowrap_mode = 3 🔗
void set_autowrap_mode(value: AutowrapMode)
AutowrapMode get_autowrap_mode()
Si se establece en un valor distinto de TextServer.AUTOWRAP_OFF, el texto se ajusta dentro del rectángulo delimitador del nodo.
BitField[LineBreakFlag] autowrap_trim_flags = 192 🔗
void set_autowrap_trim_flags(value: BitField[LineBreakFlag])
BitField[LineBreakFlag] get_autowrap_trim_flags()
Flags de recorte de espacio de ajuste automático. Véase TextServer.BREAK_TRIM_START_EDGE_SPACES y TextServer.BREAK_TRIM_END_EDGE_SPACES para más información.
Si es true, la etiqueta utiliza formato BBCode.
Nota: Esto solo afecta al contenido de text, no a la pila de etiquetas.
Si es true, un clic con el botón derecho del ratón muestra el menú contextual.
Los efectos personalizados actualmente instalados. Este es un conjunto de RichTextEffect.
Para añadir un efecto personalizado, es más conveniente usar install_effect().
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.
Si es true, el tamaño mínimo de la etiqueta se actualizará automáticamente para ajustarse a su contenido, coincidiendo con el comportamiento de Label.
Si es true, la etiqueta subraya las etiquetas de sugerencia como [hint=description]{text}[/hint].
HorizontalAlignment horizontal_alignment = 0 🔗
void set_horizontal_alignment(value: HorizontalAlignment)
HorizontalAlignment get_horizontal_alignment()
Controla la alineación horizontal del texto. Admite izquierda, centro, derecha y relleno, o justificar.
BitField[JustificationFlag] justification_flags = 163 🔗
void set_justification_flags(value: BitField[JustificationFlag])
BitField[JustificationFlag] get_justification_flags()
Reglas de alineación de relleno de línea.
Código de idioma utilizado para los algoritmos de salto de línea y forma del texto, si se deja vacío se utiliza la configuración regional actual.
Si es true, la etiqueta subraya las metaetiquetas como [url]{text}[/url]. Estas etiquetas pueden llamar a una función cuando se hace clic si meta_clicked está conectado a una función.
int progress_bar_delay = 1000 🔗
El retardo después del cual se muestra la barra de progreso de carga, en milisegundos. Establecer en -1 para desactivar la barra de progreso por completo.
Nota: La barra de progreso se muestra solo si threaded está habilitado.
Si es true, la barra de desplazamiento es visible. Ponerla en false no bloquea completamente el desplazamiento. Véase scroll_to_line().
bool scroll_following = false 🔗
Si es true, la ventana se desplaza hacia abajo para mostrar automáticamente el nuevo contenido.
bool scroll_following_visible_characters = false 🔗
void set_scroll_follow_visible_characters(value: bool)
bool is_scroll_following_visible_characters()
Si es true, la ventana se desplaza para mostrar la última línea visible cuando se cambia visible_characters o visible_ratio.
bool selection_enabled = false 🔗
Si es true, la etiqueta permite la selección de texto.
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.
El número de espacios asociados a una sola pestaña de longitud. No afecta al \t en las etiquetas de texto, sólo a las etiquetas con indentado.
PackedFloat32Array tab_stops = PackedFloat32Array() 🔗
void set_tab_stops(value: PackedFloat32Array)
PackedFloat32Array get_tab_stops()
Alinea el texto con las tabulaciones indicadas.
Note: The returned array is copied and any changes to it will not update the original property value. See PackedFloat32Array for more details.
The label's text in BBCode format. Is not representative of manual modifications to the internal tag stack. Erases changes made by other methods when edited.
Note: If bbcode_enabled is true, it is unadvised to use the += operator with text (e.g. text += "some string") as it replaces the whole text and can cause slowdowns. It will also erase all BBCode that was added to stack using push_* methods. Use append_text() for adding text instead, unless you absolutely need to close a tag that was opened in an earlier method call.
TextDirection text_direction = 0 🔗
void set_text_direction(value: TextDirection)
TextDirection get_text_direction()
Dirección base de escritura del texto.
Si es true, el procesamiento del texto se realiza en un hilo secundario.
VerticalAlignment vertical_alignment = 0 🔗
void set_vertical_alignment(value: VerticalAlignment)
VerticalAlignment get_vertical_alignment()
Controla la alineación vertical del texto. Admite superior, centro, inferior y relleno.
The number of characters to display. If set to -1, all characters are displayed. This can be useful when animating the text appearing in a dialog box.
Note: Setting this property updates visible_ratio accordingly.
Note: Characters are counted as Unicode codepoints. A single visible grapheme may contain multiple codepoints (e.g. certain emoji use three codepoints). A single codepoint may contain two UTF-16 characters, which are used in C# strings.
VisibleCharactersBehavior visible_characters_behavior = 0 🔗
void set_visible_characters_behavior(value: VisibleCharactersBehavior)
VisibleCharactersBehavior get_visible_characters_behavior()
El comportamiento de recorte cuando se establece visible_characters o visible_ratio.
La fracción de caracteres que se mostrarán, en relación con el número total de caracteres (véase get_total_character_count()). Si se establece en 1.0, se mostrarán todos los caracteres. Si se establece en 0.5, solo se mostrará la mitad de los caracteres. Esto puede ser útil al animar el texto que aparece en un cuadro de diálogo.
Nota: Establecer esta propiedad actualiza visible_characters en consecuencia.
Descripciones de Métodos
void add_hr(width: int = 90, height: int = 2, color: Color = Color(1, 1, 1, 1), alignment: HorizontalAlignment = 1, width_in_percent: bool = true, height_in_percent: bool = false) 🔗
Agrega una regla horizontal que se puede usar para separar el contenido.
Si width_in_percent está establecido, los valores de width son porcentajes del ancho del control en lugar de píxeles.
Si height_in_percent está establecido, los valores de height son porcentajes del ancho del control en lugar de píxeles.
void add_image(image: Texture2D, width: int = 0, height: int = 0, color: Color = Color(1, 1, 1, 1), inline_align: InlineAlignment = 5, region: Rect2 = Rect2(0, 0, 0, 0), key: Variant = null, pad: bool = false, tooltip: String = "", width_in_percent: bool = false, height_in_percent: bool = false, alt_text: String = "") 🔗
Añade las etiquetas de apertura y cierre de una imagen a la pila de etiquetas, opcionalmente proporcionando un width y un height para redimensionar la imagen, un color para teñir la imagen y una region para usar solo partes de la imagen.
Si width o height se establece en 0, el tamaño de la imagen se ajustará para mantener la relación de aspecto original.
Si width y height no están establecidos, pero region sí lo está, se usará el rectángulo de la región.
key es un identificador opcional, que se puede usar para modificar la imagen a través de update_image().
Si pad está establecido, y la imagen es más pequeña que el tamaño especificado por width y height, el relleno de la imagen se agrega para que coincida con el tamaño en lugar de aumentar la escala.
Si width_in_percent está establecido, los valores de width son porcentajes del ancho del control en lugar de píxeles.
Si height_in_percent está establecido, los valores de height son porcentajes del ancho del control en lugar de píxeles.
alt_text se usa como la descripción de la imagen para las aplicaciones de asistencia.
Añade texto crudo no preparado por BBCode a la pila de etiquetas.
void append_text(bbcode: String) 🔗
Analiza bbcode y agrega etiquetas a la pila de etiquetas según sea necesario.
Nota: Usando este método, no puedes cerrar una etiqueta que se abrió en una llamada anterior a append_text(). Esto se hace para mejorar el rendimiento, especialmente al actualizar RichTextLabels grandes, ya que reconstruir todo el BBCode cada vez sería más lento. Si absolutamente necesitas cerrar una etiqueta en una llamada de método futura, agrega text en lugar de usar append_text().
void clear() 🔗
Borra la pila de etiquetas, haciendo que la etiqueta no muestre nada.
Nota: Este método no afecta a text, y su contenido se mostrará de nuevo si la etiqueta se vuelve a dibujar. Sin embargo, establecer text en una String vacía también borra la pila.
void deselect() 🔗
Borra la selección actual.
int get_character_line(character: int) 🔗
Devuelve el número de línea de la posición del carácter proporcionada. Los números de línea y de carácter están indexados en cero.
Nota: Si threaded está habilitado, este método devuelve un valor para la parte cargada del documento. Usa is_finished() o finished para determinar si el documento está completamente cargado.
int get_character_paragraph(character: int) 🔗
Devuelve el número de párrafo de la posición del carácter proporcionada. Los números de párrafo y de carácter están indexados en cero.
Nota: Si threaded está habilitado, este método devuelve un valor para la parte cargada del documento. Usa is_finished() o finished para determinar si el documento está completamente cargado.
int get_content_height() const 🔗
Devuelve la altura del contenido.
Nota: Este método siempre devuelve el tamaño completo del contenido, y no se ve afectado por visible_ratio y visible_characters. Para obtener el tamaño del contenido visible, usa get_visible_content_rect().
Nota: Si threaded está habilitado, este método devuelve un valor para la parte cargada del documento. Usa is_finished() o finished para determinar si el documento está completamente cargado.
int get_content_width() const 🔗
Devuelve el ancho del contenido.
Nota: Este método siempre devuelve el tamaño completo del contenido, y no se ve afectado por visible_ratio y visible_characters. Para obtener el tamaño del contenido visible, usa get_visible_content_rect().
Nota: Si threaded está habilitado, este método devuelve un valor para la parte cargada del documento. Usa is_finished() o finished para determinar si el documento está completamente cargado.
Devuelve el número total de líneas en el texto. El texto ajustado se cuenta como múltiples líneas.
Nota: Si threaded está habilitado, este método devuelve un valor para la parte cargada del documento. Usa is_finished() o finished para determinar si el documento está completamente cargado.
int get_line_height(line: int) const 🔗
Devuelve la altura de la línea encontrada en el índice proporcionado.
Nota: Si threaded está habilitado, este método devuelve un valor para la parte cargada del documento. Usa is_finished() o finished para determinar si el documento está completamente cargado.
float get_line_offset(line: int) 🔗
Devuelve el desplazamiento vertical de la línea encontrada en el índice proporcionado.
Nota: Si threaded está habilitado, este método devuelve un valor para la parte cargada del documento. Usa is_finished() o finished para determinar si el documento está completamente cargado.
Vector2i get_line_range(line: int) 🔗
Devuelve los índices del primer y último carácter visible para la line dada, como un Vector2i.
Nota: Si visible_characters_behavior está establecido en TextServer.VC_CHARS_BEFORE_SHAPING, solo se cuentan las líneas ajustadas visibles.
Nota: Si threaded está habilitado, este método devuelve un valor para la parte cargada del documento. Usa is_finished() o finished para determinar si el documento está completamente cargado.
int get_line_width(line: int) const 🔗
Devuelve el ancho de la línea encontrada en el índice proporcionado.
Nota: Si threaded está habilitado, este método devuelve un valor para la parte cargada del documento. Usa is_finished() o finished para determinar si el documento está completamente cargado.
Returns the PopupMenu of this RichTextLabel. By default, this menu is displayed when right-clicking on the RichTextLabel.
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 "Select All" item.
menu.remove_item(MENU_SELECT_ALL)
# Add custom items.
menu.add_separator()
menu.add_item("Duplicate Text", MENU_MAX + 1)
# Connect callback.
menu.id_pressed.connect(_on_item_pressed)
func _on_item_pressed(id):
if id == MENU_MAX + 1:
add_text("\n" + get_parsed_text())
public override void _Ready()
{
var menu = GetMenu();
// Remove "Select All" item.
menu.RemoveItem(RichTextLabel.MenuItems.SelectAll);
// Add custom items.
menu.AddSeparator();
menu.AddItem("Duplicate Text", RichTextLabel.MenuItems.Max + 1);
// Add event handler.
menu.IdPressed += OnItemPressed;
}
public void OnItemPressed(int id)
{
if (id == TextEdit.MenuItems.Max + 1)
{
AddText("\n" + GetParsedText());
}
}
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_paragraph_count() const 🔗
Devuelve el número total de párrafos (saltos de línea o etiquetas p en las etiquetas de texto de la pila de etiquetas). Considera el texto ajustado como un párrafo.
float get_paragraph_offset(paragraph: int) 🔗
Devuelve el desplazamiento vertical del párrafo encontrado en el índice proporcionado.
Nota: Si threaded está habilitado, este método devuelve un valor para la parte cargada del documento. Utiliza is_finished() o finished para determinar si el documento está completamente cargado.
String get_parsed_text() const 🔗
Devuelve el texto sin el marcado BBCode.
String get_selected_text() const 🔗
Devuelve el texto de la selección actual. No incluye los BBCodes.
int get_selection_from() const 🔗
Devuelve el índice del primer carácter de la selección actual si hay una selección activa, -1 en caso contrario. No incluye los BBCodes.
float get_selection_line_offset() const 🔗
Devuelve el desplazamiento de la línea vertical de la selección actual si hay una selección activa. Devuelve -1.0 en caso contrario.
int get_selection_to() const 🔗
Devuelve el índice del último carácter de la selección actual si hay una selección activa, -1 en caso contrario. No incluye los BBCodes.
int get_total_character_count() const 🔗
Devuelve el número total de caracteres de las etiquetas de texto. No incluye los BBCodes.
VScrollBar get_v_scroll_bar() 🔗
Devuelve la barra de desplazamiento vertical.
Advertencia: Este es un nodo interno requerido, eliminarlo y liberarlo puede causar un crasheo. Si deseas ocultarlo o a alguno de sus hijos, usa su propiedad CanvasItem.visible.
Rect2i get_visible_content_rect() const 🔗
Returns the bounding rectangle of the visible content.
Note: This method returns a correct value only after the label has been drawn.
extends RichTextLabel
@export var background_panel: Panel
func _ready():
await draw
background_panel.position = get_visible_content_rect().position
background_panel.size = get_visible_content_rect().size
public partial class TestLabel : RichTextLabel
{
[Export]
public Panel BackgroundPanel { get; set; }
public override async void _Ready()
{
await ToSignal(this, Control.SignalName.Draw);
BackgroundGPanel.Position = GetVisibleContentRect().Position;
BackgroundPanel.Size = GetVisibleContentRect().Size;
}
}
int get_visible_line_count() const 🔗
Devuelve el número de líneas visibles.
Nota: Este método devuelve un valor correcto solo después de que la etiqueta haya sido dibujada.
Nota: Si threaded está habilitado, este método devuelve un valor para la parte cargada del documento. Utiliza is_finished() o finished para determinar si el documento está completamente cargado.
int get_visible_paragraph_count() const 🔗
Devuelve el número de párrafos visibles. Se considera que un párrafo es visible si al menos una de sus líneas es visible.
Nota: Este método devuelve un valor correcto solo después de que la etiqueta haya sido dibujada.
Nota: Si threaded está habilitado, este método devuelve un valor para la parte cargada del documento. Utiliza is_finished() o finished para determinar si el documento está completamente cargado.
void install_effect(effect: Variant) 🔗
Installs a custom effect. This can also be done in the Inspector through the custom_effects property. effect should be a valid RichTextEffect.
Example: With the following script extending from RichTextEffect:
# effect.gd
class_name MyCustomEffect
extends RichTextEffect
var bbcode = "my_custom_effect"
# ...
The above effect can be installed in RichTextLabel from a script:
# rich_text_label.gd
extends RichTextLabel
func _ready():
install_effect(MyCustomEffect.new())
# Alternatively, if not using `class_name` in the script that extends RichTextEffect:
install_effect(preload("res://effect.gd").new())
bool invalidate_paragraph(paragraph: int) 🔗
Invalida paragraph y todas las cachés de párrafos siguientes.
Si threaded está habilitado, devuelve true si el hilo de fondo ha terminado el procesamiento del texto, de lo contrario siempre devuelve true.
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ú).
Obsoleto: Use is_finished() instead.
Si threaded está habilitado, devuelve true si el hilo de fondo ha terminado el procesamiento del texto, de lo contrario siempre devuelve true.
Ejecuta una acción determinada según se define en el enum MenuItems.
void newline() 🔗
Añade una etiqueta de nueva línea a la pila de etiquetas.
void parse_bbcode(bbcode: String) 🔗
La versión de asignación de append_text(). Limpia la pila de etiquetas e inserta el nuevo contenido.
Dictionary parse_expressions_for_values(expressions: PackedStringArray) 🔗
Analiza el parámetro BBCode expressions en un diccionario.
void pop() 🔗
Termina la etiqueta actual. Utiliza después de push_* métodos para cerrar manualmente los BBCodes. No necesita seguir los métodos add_*.
void pop_all() 🔗
Termina todas las etiquetas abiertas por los métodos push_*.
void pop_context() 🔗
Termina las etiquetas abiertas después de la última llamada a push_context() (incluido el marcador de contexto), o todas las etiquetas si no hay un marcador de contexto en la pila.
void push_bgcolor(bgcolor: Color) 🔗
Añade una etiqueta [bgcolor] a la pila de etiquetas.
Nota: El color de fondo tiene un relleno aplicado por defecto, que se controla mediante text_highlight_h_padding y text_highlight_v_padding. Esto puede provocar resaltes superpuestos si los colores de fondo se colocan en líneas/columnas vecinas, por lo que considera la posibilidad de establecer esos elementos del tema en 0 si quieres evitar esto.
void push_bold() 🔗
Añade una etiqueta [font] con una fuente en negrita a la pila de etiquetas. Esto es lo mismo que añadir una etiqueta [b] si no está actualmente en una etiqueta [i].
void push_bold_italics() 🔗
Añade una etiqueta [font] con una fuente en negrita y cursiva a la pila de etiquetas.
void push_cell() 🔗
Adds a [cell] tag to the tag stack. Must be inside a [table] tag. See push_table() for details. Use set_table_column_expand() to set column expansion ratio, set_cell_border_color() to set cell border, set_cell_row_background_color() to set cell background, set_cell_size_override() to override cell size, and set_cell_padding() to set padding.
void push_color(color: Color) 🔗
Adds a [color] tag to the tag stack.
void push_context() 🔗
Añade un marcador de contexto a la pila de etiquetas. Véase pop_context().
void push_customfx(effect: RichTextEffect, env: Dictionary) 🔗
Añade una etiqueta de efecto personalizado a la pila de etiquetas. El efecto no necesita estar en custom_effects. El entorno se pasa directamente al efecto.
void push_dropcap(string: String, font: Font, size: int, dropcap_margins: Rect2 = Rect2(0, 0, 0, 0), color: Color = Color(1, 1, 1, 1), outline_size: int = 0, outline_color: Color = Color(0, 0, 0, 0)) 🔗
Añade una etiqueta [dropcap] a la pila de etiquetas. La letra capitular es un elemento decorativo al principio de un párrafo que es más grande que el resto del texto.
void push_fgcolor(fgcolor: Color) 🔗
Añade una etiqueta [fgcolor] a la pila de etiquetas.
Nota: El color de primer plano tiene un relleno aplicado por defecto, que se controla mediante text_highlight_h_padding y text_highlight_v_padding. Esto puede provocar resaltes superpuestos si los colores de primer plano se colocan en líneas/columnas vecinas, así que considera establecer esos elementos del tema a 0 si quieres evitar esto.
void push_font(font: Font, font_size: int = 0) 🔗
Añade una etiqueta [font] a la pila de etiquetas. Anula las fuentes predeterminadas durante su duración.
Si se pasa 0 a font_size, se utilizará el tamaño de fuente predeterminado existente.
void push_font_size(font_size: int) 🔗
Añade una etiqueta [font_size] a la pila de etiquetas. Anula el tamaño de fuente predeterminado durante su duración.
void push_hint(description: String) 🔗
Añade una etiqueta [hint] a la pila de etiquetas. Es lo mismo que el BBCode [hint=something]{text}[/hint].
void push_indent(level: int) 🔗
Añade una etiqueta [indent] a la pila de etiquetas. Multiplica level por tab_size actual para determinar la nueva longitud del margen.
void push_italics() 🔗
Añade una etiqueta [font] con una fuente en cursiva a la pila de etiquetas. Esto es lo mismo que añadir una etiqueta [i] si no está actualmente en una etiqueta [b].
void push_language(language: String) 🔗
Añade un código de idioma utilizado para el algoritmo de modelado de texto y características de fuente OpenType.
void push_list(level: int, type: ListType, capitalize: bool, bullet: String = "•") 🔗
Añade una etiqueta [ol] o [ul] a la pila de etiquetas. Multiplica level por el tab_size actual para determinar la nueva longitud del margen.
void push_meta(data: Variant, underline_mode: MetaUnderline = 1, tooltip: String = "") 🔗
Añade una metaetiqueta a la pila de etiquetas. Similar al BBCode [url=algo]{text}[/url], pero admite tipos de metadatos que no son String.
Si meta_underlined es true, las metaetiquetas muestran un subrayado. Este comportamiento se puede personalizar con underline_mode.
Nota: Las metaetiquetas no hacen nada por defecto cuando se hace clic en ellas. Para asignar un comportamiento cuando se hace clic, conecta meta_clicked a una función que se llama cuando se hace clic en la metaetiqueta.
void push_mono() 🔗
Añade una etiqueta [font] con una fuente monoespaciada a la pila de etiquetas.
void push_normal() 🔗
Añade una etiqueta [font] con una fuente normal a la pila de etiquetas.
void push_outline_color(color: Color) 🔗
Añade una etiqueta [outline_color] a la pila de etiquetas. Añade un contorno al texto durante su duración.
void push_outline_size(outline_size: int) 🔗
Añade una etiqueta [outline_size] a la pila de etiquetas. Anula el tamaño predeterminado del contorno del texto durante su duración.
void push_paragraph(alignment: HorizontalAlignment, base_direction: TextDirection = 0, language: String = "", st_parser: StructuredTextParser = 0, justification_flags: BitField[JustificationFlag] = 163, tab_stops: PackedFloat32Array = PackedFloat32Array()) 🔗
Añade una etiqueta [p] a la pila de etiquetas.
void push_strikethrough(color: Color = Color(0, 0, 0, 0)) 🔗
Añade una etiqueta [s] a la pila de etiquetas. Si el valor alfa de color es cero, se utiliza el color de fuente actual con el alfa multiplicado por strikethrough_alpha.
void push_table(columns: int, inline_align: InlineAlignment = 0, align_to_row: int = -1, name: String = "") 🔗
Añade una etiqueta [table=columns,inline_align] a la pila de etiquetas. Utiliza set_table_column_expand() para establecer la proporción de expansión de la columna. Utiliza push_cell() para añadir celdas. name se utiliza como el nombre de la tabla para las aplicaciones de asistencia.
void push_underline(color: Color = Color(0, 0, 0, 0)) 🔗
Añade una etiqueta [u] a la pila de etiquetas. Si el valor alfa de color es cero, se utiliza el color de fuente actual con el alfa multiplicado por underline_alpha.
void reload_effects() 🔗
Recarga los efectos personalizados. Útil cuando custom_effects se modifica manualmente.
bool remove_paragraph(paragraph: int, no_invalidate: bool = false) 🔗
Elimina un párrafo de contenido de la etiqueta. Devuelve true si el párrafo existe.
El argumento paragraph es el índice del párrafo a eliminar, puede tomar valores en el intervalo [0, get_paragraph_count() - 1].
Si no_invalidate se establece en true, la caché de los párrafos subsiguientes no se invalida. Utilícelo para actualizaciones más rápidas si el párrafo eliminado está completamente autocontenido (no tiene etiquetas sin cerrar), o esta llamada es parte de una operación de edición compleja y invalidate_paragraph() se llamará al final de la operación.
void scroll_to_line(line: int) 🔗
Desplaza la línea superior de la ventana para que coincida con line.
void scroll_to_paragraph(paragraph: int) 🔗
Desplaza la línea superior de la ventana para que coincida con la primera línea del paragraph.
void scroll_to_selection() 🔗
Se desplaza al principio de la selección actual.
void select_all() 🔗
Selecciona todo el texto.
Si selection_enabled es false, no se producirá ninguna selección.
void set_cell_border_color(color: Color) 🔗
Establece el color del borde de una celda de la tabla.
void set_cell_padding(padding: Rect2) 🔗
Establece el relleno interior de una celda de la tabla.
void set_cell_row_background_color(odd_row_bg: Color, even_row_bg: Color) 🔗
Establece el color de una celda de la tabla. Se pueden especificar colores separados para filas alternas.
void set_cell_size_override(min_size: Vector2, max_size: Vector2) 🔗
Establece las anulaciones de tamaño mínimo y máximo para una celda de la tabla.
void set_table_column_expand(column: int, expand: bool, ratio: int = 1, shrink: bool = true) 🔗
Edits the selected column's expansion options. If expand is true, the column expands in proportion to its expansion ratio versus the other columns' ratios.
For example, 2 columns with ratios 3 and 4 plus 70 pixels in available width would expand 30 and 40 pixels, respectively.
If expand is false, the column will not contribute to the total ratio.
void set_table_column_name(column: int, name: String) 🔗
Establece el nombre de la columna de la tabla para las aplicaciones de asistencia.
void update_image(key: Variant, mask: BitField[ImageUpdateMask], image: Texture2D, width: int = 0, height: int = 0, color: Color = Color(1, 1, 1, 1), inline_align: InlineAlignment = 5, region: Rect2 = Rect2(0, 0, 0, 0), pad: bool = false, tooltip: String = "", width_in_percent: bool = false, height_in_percent: bool = false) 🔗
Actualiza las imágenes existentes con la clave key. Solo se actualizan las propiedades especificadas por los bits de mask. Véase add_image().
Descripciones de las propiedades del tema
Color default_color = Color(1, 1, 1, 1) 🔗
El color de texto por defecto.
Color font_outline_color = Color(0, 0, 0, 1) 🔗
El tinte predeterminado del contorno del texto.
Color font_selected_color = Color(0, 0, 0, 0) 🔗
El color del texto seleccionado, utilizado cuando selection_enabled es true. Si es igual a Color(0, 0, 0, 0), se ignorará.
Color font_shadow_color = Color(0, 0, 0, 0) 🔗
El color de la sombra de la fuente.
Color selection_color = Color(0.1, 0.1, 1, 0.8) 🔗
El color de la caja de selección.
Color table_border = Color(0, 0, 0, 0) 🔗
El color de borde de celda predeterminado.
Color table_even_row_bg = Color(0, 0, 0, 0) 🔗
El color de fondo predeterminado para las filas pares.
Color table_odd_row_bg = Color(0, 0, 0, 0) 🔗
El color de fondo predeterminado para las filas impares.
Additional vertical spacing between lines (in pixels), spacing is added to line descent. This value can be negative.
The size of the text outline.
Note: If using a font with FontFile.multichannel_signed_distance_field enabled, its FontFile.msdf_pixel_range must be set to at least twice the value of outline_size for outline rendering to look correct. Otherwise, the outline may appear to be cut off earlier than intended.
int paragraph_separation = 0 🔗
Espacio vertical adicional entre párrafos (en píxeles). El espacio se añade después de la última línea. Este valor puede ser negativo.
El desplazamiento horizontal de la sombra de la fuente.
El desplazamiento vertical de la sombra de la fuente.
El tamaño del contorno de la sombra.
int strikethrough_alpha = 50 🔗
La transparencia (porcentaje) predeterminada del color de tachado. Para los tachados con un color personalizado, este elemento del tema solo se utiliza si el alfa del color personalizado es 0.0 (totalmente transparente).
La separación horizontal de elementos en una tabla.
La separación vertical de elementos en una tabla.
int text_highlight_h_padding = 3 🔗
El relleno horizontal alrededor de los cuadros dibujados por las etiquetas [fgcolor] y [bgcolor]. Esto no afecta la apariencia de la selección de texto. Para evitar cualquier riesgo de que los resaltados vecinos se superpongan entre sí, establece esto en 0 para desactivar el relleno.
int text_highlight_v_padding = 3 🔗
El relleno vertical alrededor de los cuadros dibujados por las etiquetas [fgcolor] y [bgcolor]. Esto no afecta la apariencia de la selección de texto. Para evitar cualquier riesgo de que los resaltados vecinos se superpongan entre sí, establece esto en 0 para desactivar el relleno.
El porcentaje de transparencia del color de subrayado predeterminado. Para subrayados con un color personalizado, este elemento de tema solo se usa si el alfa del color personalizado es 0.0 (totalmente transparente).
La fuente usada para el texto en negrita.
La fuente usada para el texto en negrita y cursiva.
La fuente usada para el texto en cursiva.
La fuente usada para el texto monoespacio.
La fuente por defecto.
El tamaño de fuente utilizado para texto en negrita.
El tamaño de fuente utilizado para texto en negrita cursiva.
El tamaño de fuente utilizado para texto en cursiva.
El tamaño de fuente utilizado para el texto monoespaciado.
El tamaño de fuente predeterminado del texto.
La textura de la regla horizontal.
The background used when the RichTextLabel is focused. The focus StyleBox is displayed over the base StyleBox, so a partially transparent StyleBox should be used to ensure the base StyleBox remains visible. A StyleBox that represents an outline or an underline works well for this purpose. To disable the focus visual effect, assign a StyleBoxEmpty resource. Note that disabling the focus visual effect will harm keyboard/controller navigation usability, so this is not recommended for accessibility reasons.
El fondo normal para el RichTextLabel.