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.

RichTextLabel

Eredita: Control < CanvasItem < Node < Object

Un controllo per visualizzare testo che può contenere diversi stili di font, immagini e formattazione di base.

Descrizione

Un controllo per visualizzare testo che può contenere font personalizzati, immagini e formattazione basilare. RichTextLabel li gestisce come uno stack di tag interno. Si adatta anche a larghezze o altezze specificate.

Nota: newline(), push_paragraph(), "\n", "\r\n", il tag p e il tag di allineamento cominciano un nuovo paragrafo. Ogni paragrafo viene elaborato in modo indipendente, nel suo proprio contesto BiDi. Se si desidera forzare un'interruzione di riga all'interno del paragrafo, è possibile utilizzare qualsiasi altro carattere d'interruzione di riga, ad esempio, Form Feed (U+000C), Next Line (U+0085), Line Separator (U+2028).

Nota: Le assegnazioni a text cancellano lo stack di tag e lo ricostruiscono dai contenuti della proprietà. Qualsiasi modifica apportata a text cancellerà le modifiche precedenti apportate da altre sorgenti manuali come append_text() e i metodi push_* / pop().

Nota: RichTextLabel non supporta i tag BBCode aggrovigliati. Ad esempio, invece di usare [b]grassetto[i]grassetto corsivo[/b]corsivo[/i], usa [b]grassetto[i]grassetto corsivo[/i][/b][i]corsivo[/i].

Nota: Le funzioni push_*/pop_* non influenzeranno il BBCode.

Nota: Quando bbcode_enabled è abilitato, i tag di allineamento come [center] avranno la priorità sull'impostazione horizontal_alignment che determina l'allineamento predefinito del testo.

Tutorial

Proprietà

AutowrapMode

autowrap_mode

3

BitField[LineBreakFlag]

autowrap_trim_flags

192

bool

bbcode_enabled

false

bool

clip_contents

true (overrides Control)

bool

context_menu_enabled

false

Array

custom_effects

[]

bool

deselect_on_focus_loss_enabled

true

bool

drag_and_drop_selection_enabled

true

bool

fit_content

false

FocusMode

focus_mode

3 (overrides Control)

bool

hint_underlined

true

HorizontalAlignment

horizontal_alignment

0

BitField[JustificationFlag]

justification_flags

163

String

language

""

bool

meta_underlined

true

int

progress_bar_delay

1000

bool

scroll_active

true

bool

scroll_following

false

bool

scroll_following_visible_characters

false

bool

selection_enabled

false

bool

shortcut_keys_enabled

true

StructuredTextParser

structured_text_bidi_override

0

Array

structured_text_bidi_override_options

[]

int

tab_size

4

PackedFloat32Array

tab_stops

PackedFloat32Array()

String

text

""

TextDirection

text_direction

0

bool

threaded

false

VerticalAlignment

vertical_alignment

0

int

visible_characters

-1

VisibleCharactersBehavior

visible_characters_behavior

0

float

visible_ratio

1.0

Metodi

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: float = 0, height: float = 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_unit: ImageUnit = 0, height_unit: ImageUnit = 0, alt_text: String = "")

void

add_text(text: String)

void

append_text(bbcode: String)

void

clear()

void

deselect()

int

get_character_line(character: int)

int

get_character_paragraph(character: int)

int

get_content_height() const

int

get_content_width() const

int

get_line_count() const

int

get_line_height(line: int) const

float

get_line_offset(line: int)

Vector2i

get_line_range(line: int)

int

get_line_width(line: int) const

PopupMenu

get_menu() const

int

get_paragraph_count() const

float

get_paragraph_offset(paragraph: int)

String

get_parsed_text() const

String

get_selected_text() const

int

get_selection_from() const

float

get_selection_line_offset() const

int

get_selection_to() const

int

get_total_character_count() const

VScrollBar

get_v_scroll_bar()

Rect2i

get_visible_content_rect() const

int

get_visible_line_count() const

int

get_visible_paragraph_count() const

void

install_effect(effect: Variant)

bool

invalidate_paragraph(paragraph: int)

bool

is_finished() const

bool

is_menu_visible() const

bool

is_ready() const

void

menu_option(option: int)

void

newline()

void

parse_bbcode(bbcode: String)

Dictionary

parse_expressions_for_values(expressions: PackedStringArray)

void

pop()

void

pop_all()

void

pop_context()

void

push_bgcolor(bgcolor: Color)

void

push_bold()

void

push_bold_italics()

void

push_cell()

void

push_color(color: Color)

void

push_context()

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

push_font(font: Font, font_size: int = 0)

void

push_font_size(font_size: int)

void

push_hint(description: String)

void

push_indent(level: int)

void

push_italics()

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

push_mono()

void

push_normal()

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

reload_effects()

bool

remove_paragraph(paragraph: int, no_invalidate: bool = false)

void

scroll_to_line(line: int)

void

scroll_to_paragraph(paragraph: int)

void

scroll_to_selection()

void

select_all()

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: float = 0, height: float = 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_unit: ImageUnit = 0, height_unit: ImageUnit = 0)

Proprietà del tema

Color

default_color

Color(1, 1, 1, 1)

Color

font_outline_color

Color(0, 0, 0, 1)

Color

font_selected_color

Color(0, 0, 0, 0)

Color

font_shadow_color

Color(0, 0, 0, 0)

Color

selection_color

Color(0.1, 0.1, 1, 0.8)

Color

table_border

Color(0, 0, 0, 0)

Color

table_even_row_bg

Color(0, 0, 0, 0)

Color

table_odd_row_bg

Color(0, 0, 0, 0)

int

line_separation

0

int

outline_size

0

int

paragraph_separation

0

int

shadow_offset_x

1

int

shadow_offset_y

1

int

shadow_outline_size

1

int

strikethrough_alpha

50

int

table_h_separation

3

int

table_v_separation

3

int

text_highlight_h_padding

3

int

text_highlight_v_padding

3

int

underline_alpha

50

Font

bold_font

Font

bold_italics_font

Font

italics_font

Font

mono_font

Font

normal_font

int

bold_font_size

int

bold_italics_font_size

int

italics_font_size

int

mono_font_size

int

normal_font_size

Texture2D

horizontal_rule

StyleBox

focus

StyleBox

normal


Segnali

finished() 🔗

Attivato quando il documento è completamente caricato.

Nota: Ciò può accadere prima che il testo venga elaborato per il disegno. I valori di scorrimento potrebbero non essere validi finché il documento non viene disegnato per la prima volta dopo questo segnale.


meta_clicked(meta: Variant) 🔗

Attivato quando l'utente clicca sul contenuto tra i tag meta (URL). Se il meta è definito in BBCode, ad esempio [url={"key": "value"}]Text[/url], il parametro per questo segnale sarà sempre un tipo String. Se si desidera un tipo particolare o un oggetto, è necessario usare il metodo push_meta() per inserire manualmente i dati nello stack dei tag. In alternativa, è possibile convertire l'input String nel tipo desiderato in base al suo contenuto (ad esempio chiamando JSON.parse() su di esso).

Ad esempio, è possibile collegare il seguente metodo a meta_clicked per aprire gli URL cliccati sul browser Web predefinito dell'utente:

# Ciò assume che il segnale `meta_clicked` del RichTextLabel sia stato connesso
# alla seguente funzione tramite la finestra di dialogo per connettere i segnali.
func _richtextlabel_on_meta_clicked(meta):
    # `meta` è di tipo Variant, perciò convertilo a String per evitare errori di script durante l'esecuzione.
    OS.shell_open(str(meta))

meta_hover_ended(meta: Variant) 🔗

Si attiva quando il mouse esce da un tag meta.


meta_hover_started(meta: Variant) 🔗

Si attiva quando il mouse entra in un tag meta.


Enumerazioni

enum ListType: 🔗

ListType LIST_NUMBERS = 0

Ogni elemento della lista è contrassegnato da un numero.

ListType LIST_LETTERS = 1

Ogni elemento della lista è contrassegnato da una lettera.

ListType LIST_ROMAN = 2

Ogni elemento della lista è contrassegnato da un numero romano.

ListType LIST_DOTS = 3

Ogni elemento della lista è contrassegnato da un cerchio pieno.


enum MenuItems: 🔗

MenuItems MENU_COPY = 0

Copia il testo selezionato.

MenuItems MENU_SELECT_ALL = 1

Seleziona tutto il testo del RichTextLabel.

MenuItems MENU_MAX = 2

Rappresenta la dimensione dell'enumerazione MenuItems.


enum MetaUnderline: 🔗

MetaUnderline META_UNDERLINE_NEVER = 0

Il tag meta non visualizza una sottolineatura, anche se meta_underlined è true.

MetaUnderline META_UNDERLINE_ALWAYS = 1

Se meta_underlined è true, il tag meta visualizza sempre una sottolineatura.

MetaUnderline META_UNDERLINE_ON_HOVER = 2

Se meta_underlined è true, il tag meta visualizza una sottolineatura quando il cursore del mouse si trova sopra di esso.


flags ImageUpdateMask: 🔗

ImageUpdateMask UPDATE_TEXTURE = 1

Se questo bit è impostato, update_image() modifica la texture dell'immagine.

ImageUpdateMask UPDATE_SIZE = 2

Se questo bit è impostato, update_image() modifica le dimensioni dell'immagine.

ImageUpdateMask UPDATE_COLOR = 4

Se questo bit è impostato, update_image() modifica il colore dell'immagine.

ImageUpdateMask UPDATE_ALIGNMENT = 8

Se questo bit è impostato, update_image() modifica l'allineamento in riga dell'immagine.

ImageUpdateMask UPDATE_REGION = 16

Se questo bit è impostato, update_image() modifica la regione della texture dell'immagine.

ImageUpdateMask UPDATE_PAD = 32

Se questo bit è impostato, update_image() modifica la spaziatura dell'immagine.

ImageUpdateMask UPDATE_TOOLTIP = 64

Se questo bit è impostato, update_image() modifica il tooltip dell'immagine.

ImageUpdateMask UPDATE_WIDTH_UNIT = 128

If this bit is set, update_image() changes the units used to calculate image size.


enum ImageUnit: 🔗

ImageUnit IMAGE_UNIT_PIXEL = 0

Images drawn with this unit will be in pixels.

ImageUnit IMAGE_UNIT_PERCENT = 1

Images drawn with this unit will be in percentages of the control width.

ImageUnit IMAGE_UNIT_EM = 2

Images drawn with this unit will be in percentages of the surrounding font size.


Descrizioni delle proprietà

AutowrapMode autowrap_mode = 3 🔗

If set to something other than TextServer.AUTOWRAP_OFF, the text gets wrapped inside the node's bounding rectangle.

Note: RichTextLabels with autowrapping and fit_content enabled must have a custom maximum width configured to work correctly, either through the RichTextLabel's own Control.custom_maximum_size or as a result of a propagated maximum size from a parent Control with Control.propagate_maximum_size enabled.


BitField[LineBreakFlag] autowrap_trim_flags = 192 🔗

Flag di troncamento spazi per il ritorno a capo automatico. Vedi TextServer.BREAK_TRIM_START_EDGE_SPACES e TextServer.BREAK_TRIM_END_EDGE_SPACES per ulteriori informazioni.


bool bbcode_enabled = false 🔗

  • void set_use_bbcode(value: bool)

  • bool is_using_bbcode()

Se true, l'etichetta usa la formattazione in BBCode.

Nota: Questo riguarda solo il contenuto di text, non lo stack dei tag.


bool context_menu_enabled = false 🔗

  • void set_context_menu_enabled(value: bool)

  • bool is_context_menu_enabled()

Se true, un clic destro visualizza il menu contestuale.


Array custom_effects = [] 🔗

  • void set_effects(value: Array)

  • Array get_effects()

Gli effetti personalizzati attualmente installati. Questo è un array di RichTextEffect.

Per aggiungere un effetto personalizzato, è più comodo usare install_effect().


bool deselect_on_focus_loss_enabled = true 🔗

  • void set_deselect_on_focus_loss_enabled(value: bool)

  • bool is_deselect_on_focus_loss_enabled()

Se true, il testo selezionato verrà deselezionato quando si perde il focus.


bool drag_and_drop_selection_enabled = true 🔗

  • void set_drag_and_drop_selection_enabled(value: bool)

  • bool is_drag_and_drop_selection_enabled()

Se true, consente di trascinare e rilasciare il testo selezionato.


bool fit_content = false 🔗

  • void set_fit_content(value: bool)

  • bool is_fit_content_enabled()

If true, the label's minimum size will be automatically updated to fit its content, matching the behavior of Label.

Note: RichTextLabels with autowrapping and fit_content enabled must have a custom maximum width configured to work correctly, either through the RichTextLabel's own Control.custom_maximum_size or as a result of a propagated maximum size from a parent Control with Control.propagate_maximum_size enabled.


bool hint_underlined = true 🔗

  • void set_hint_underline(value: bool)

  • bool is_hint_underlined()

Se true, l'etichetta sottolinea i tag di suggerimento come [hint=description]{text}[/hint].


HorizontalAlignment horizontal_alignment = 0 🔗

Controlla l'allineamento orizzontale del testo. Supporta sinistra, centro, destra, e riempi (noto anche come giustifica).


BitField[JustificationFlag] justification_flags = 163 🔗

Regole di allineamento del riempimento per le righe.


String language = "" 🔗

Language code used for line-breaking and text shaping algorithms. If left empty, the current locale is used instead.


bool meta_underlined = true 🔗

  • void set_meta_underline(value: bool)

  • bool is_meta_underlined()

Se true, la RichTextLabel sottolinea i tag meta come [url]{text}[/url]. Questi tag possono chiamare una funzione al clic se meta_clicked è connesso a una funzione.


int progress_bar_delay = 1000 🔗

  • void set_progress_bar_delay(value: int)

  • int get_progress_bar_delay()

Il ritardo dopo il quale viene visualizzata la barra di avanzamento del caricamento, in millisecondi. Imposta su -1 per disattivare completamente la barra di avanzamento.

Nota: La barra di avanzamento viene visualizzata solo se threaded è abilitato.


bool scroll_active = true 🔗

  • void set_scroll_active(value: bool)

  • bool is_scroll_active()

Se true, la barra di scorrimento è visibile. Impostando questo su false lo scorrimento non viene bloccato completamente. Vedi scroll_to_line().


bool scroll_following = false 🔗

  • void set_scroll_follow(value: bool)

  • bool is_scroll_following()

Se true, la finestra scorre verso il basso per visualizzare automaticamente il nuovo contenuto.


bool scroll_following_visible_characters = false 🔗

  • void set_scroll_follow_visible_characters(value: bool)

  • bool is_scroll_following_visible_characters()

Se true, la finestra scorre per visualizzare l'ultima riga visibile quando visible_characters o visible_ratio vengono modificati.


bool selection_enabled = false 🔗

  • void set_selection_enabled(value: bool)

  • bool is_selection_enabled()

Se true, l'etichetta permette di selezionare il testo.


bool shortcut_keys_enabled = true 🔗

  • void set_shortcut_keys_enabled(value: bool)

  • bool is_shortcut_keys_enabled()

Se true, le scorciatoie da tastiera per le voci del menu contestuale sono abilitate, anche se il menu contestuale è disabilitato.


StructuredTextParser structured_text_bidi_override = 0 🔗

Imposta la sostituzione dell'algoritmo BiDi per il testo strutturato.


Array structured_text_bidi_override_options = [] 🔗

  • void set_structured_text_bidi_override_options(value: Array)

  • Array get_structured_text_bidi_override_options()

Imposta opzioni aggiuntive per la sostituzione BiDi.


int tab_size = 4 🔗

  • void set_tab_size(value: int)

  • int get_tab_size()

Il numero di spazi associati a una singola lunghezza di tabulazione. Non influisce su \t nei tag di testo, solo sui tag di rientro.


PackedFloat32Array tab_stops = PackedFloat32Array() 🔗

Allinea il testo alle tabulazioni specificate.

Note: The returned array is copied and any changes to it will not update the original property value. See PackedFloat32Array for more details.


String text = "" 🔗

Il testo dell'etichetta in formato BBCode. Non è rappresentativo delle modifiche manuali allo stack dei tag interno. Cancella le modifiche apportate da altri metodi quando viene modificato.

Nota: Se bbcode_enabled è true, non è consigliabile usare l'operatore += con text (ad esempio text += "some string") perché sostituisce l'intero testo e può causare rallentamenti. Cancellerà anche tutto il BBCode che è stato aggiunto allo stack tramite i metodi push_*. Usa invece append_text() per aggiungere testo, a meno che tu non abbia assolutamente bisogno di chiudere un tag che è stato aperto in una precedente chiamata a un metodo.


TextDirection text_direction = 0 🔗

Direzione di scrittura del testo di base.


bool threaded = false 🔗

  • void set_threaded(value: bool)

  • bool is_threaded()

Se true, l'elaborazione del testo è eseguita in un thread in background.


VerticalAlignment vertical_alignment = 0 🔗

Controlla l'allineamento verticale del testo. Supporta sopra, centro, sotto e riempi.


int visible_characters = -1 🔗

  • void set_visible_characters(value: int)

  • int get_visible_characters()

Il numero di caratteri da visualizzare. Se impostato su -1, tutti i caratteri sono visualizzati. Può essere utile quando si anima il testo che appare in una finestra di dialogo.

Nota: Impostando questa proprietà si aggiorna visible_ratio di conseguenza.

Nota: I caratteri sono conteggiati come codici Unicode. Un singolo grafema visibile può contenere più codici (ad esempio, alcune emoji ne utilizzano tre). Un singolo codice può contenere due caratteri UTF-16, i quali sono utilizzati nelle stringhe C#.


VisibleCharactersBehavior visible_characters_behavior = 0 🔗

Il comportamento di ritaglio quando è impostato visible_characters o visible_ratio.


float visible_ratio = 1.0 🔗

  • void set_visible_ratio(value: float)

  • float get_visible_ratio()

La frazione di caratteri da visualizzare, relativa al numero totale di caratteri (vedi get_total_character_count()). Se impostato su 1.0, sono visualizzati tutti i caratteri. Se impostato su 0.5, sarà visualizzata solo la metà dei caratteri. Questo può essere utile quando si anima il testo che appare in una finestra di dialogo.

Nota: Impostando questa proprietà viene aggiornato visible_characters di conseguenza.


Descrizioni dei metodi

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) 🔗

Aggiunge una linea orizzontale che si può utilizzare per separare il contenuto.

Se width_in_percent è impostato, i valori di width sono percentuali della larghezza del controllo anziché pixel.

Se height_in_percent è impostato, i valori di height sono percentuali della larghezza del controllo anziché pixel.


void add_image(image: Texture2D, width: float = 0, height: float = 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_unit: ImageUnit = 0, height_unit: ImageUnit = 0, alt_text: String = "") 🔗

Aggiunge i tag di apertura e chiusura di un'immagine allo stack dei tag, fornendo facoltativamente un width e height per ridimensionare l'immagine, un color per colorare l'immagine e un region per utilizzare solo parti dell'immagine.

Se width o height sono impostati su 0, le dimensioni dell'immagine saranno adattate per mantenere le proporzioni originali.

Se width e height non sono impostati, ma region lo è, sarà utilizzato il rettangolo della regione.

key è un identificatore facoltativo, che può servire per modificare l'immagine tramite update_image().

Se pad è impostato e l'immagine è più piccola delle dimensioni specificate da width e height, il padding dell'immagine viene aggiunto per adattarla alle dimensioni anziché ridimensionarla.

I parametri width_unit e height_unit determinano le unità utilizzate per calcolare rispettivamente la larghezza e l'altezza dell'immagine.

alt_text è utilizzato come descrizione dell'immagine per le applicazioni assistive.


void add_text(text: String) 🔗

Aggiunge testo grezzo non analizzato da BBCode allo stack dei tag.


void append_text(bbcode: String) 🔗

Analizza bbcode e aggiunge i tag allo stack di tag in base alle necessità.

Nota: Utilizzando questo metodo, non è possibile chiudere un tag che è stato aperto in una precedente chiamata a append_text(). Ciò è fatto per migliorare le prestazioni, in particolare quando si aggiornano RichTextLabel molto grandi, poiché ricostruire l'intero BBCode ogni volta sarebbe più lento. Se è assolutamente necessario chiudere un tag in una futura chiamata al metodo, aggiungere text anziché utilizzare append_text().


void clear() 🔗

Cancella lo stack dei tag, facendo in modo che l'etichetta non visualizzi nulla.

Nota: Questo metodo non influisce su text e il suo contenuto verrà visualizzato di nuovo se l'etichetta viene ridisegnata. Tuttavia, anche impostando text su una String vuota si cancella lo stack.


void deselect() 🔗

Cancella la selezione attuale.


int get_character_line(character: int) 🔗

Restituisce il numero di riga della posizione di carattere fornita. I numeri di riga e di carattere sono entrambi indicizzati a zero.

Nota: Se threaded è abilitato, questo metodo restituisce un valore per la parte caricata del documento. Usa is_finished() o finished per determinare se il documento ha caricato completamente.


int get_character_paragraph(character: int) 🔗

Restituisce il numero di paragrafo della posizione di carattere fornita. I numeri di paragrafo e di carattere sono entrambi indicizzati a zero.

Nota: Se threaded è abilitato, questo metodo restituisce un valore per la parte caricata del documento. Usa is_finished() o finished per determinare se il documento ha caricato completamente.


int get_content_height() const 🔗

Restituisce l'altezza del contenuto.

Nota: Questo metodo restituisce sempre la dimensione completa del contenuto e non è influenzato da visible_ratio e visible_characters. Per ottenere la dimensione visibile del contenuto, utilizzare get_visible_content_rect().

Nota: Se threaded è abilitato, questo metodo restituisce un valore per la parte caricata del documento. Usa is_finished() o finished per determinare se il documento ha caricato completamente.


int get_content_width() const 🔗

Restituisce la larghezza del contenuto.

Nota: Questo metodo restituisce sempre la dimensione completa del contenuto e non è influenzato da visible_ratio e visible_characters. Per ottenere la dimensione visibile del contenuto, utilizzare get_visible_content_rect().

Nota: Se threaded è abilitato, questo metodo restituisce un valore per la parte caricata del documento. Usa is_finished() o finished per determinare se il documento ha caricato completamente.


int get_line_count() const 🔗

Restituisce il numero totale di righe nel testo. Il testo avvolto conta come più righe.

Nota: Se threaded è abilitato, questo metodo restituisce un valore per la parte caricata del documento. Usa is_finished() o finished per determinare se il documento ha caricato completamente.


int get_line_height(line: int) const 🔗

Restituisce l'altezza della riga trovata all'indice fornito.

Nota: Se threaded è abilitato, questo metodo restituisce un valore per la parte caricata del documento. Usa is_finished() o finished per determinare se il documento ha caricato completamente.


float get_line_offset(line: int) 🔗

Restituisce lo scostamento verticale della riga trovata all'indice fornito.

Nota: Se threaded è abilitato, questo metodo restituisce un valore per la parte caricata del documento. Usa is_finished() o finished per determinare se il documento ha caricato completamente.


Vector2i get_line_range(line: int) 🔗

Restituisce gli indici del primo e dell'ultimo carattere visibile per la riga line specificata, come Vector2i.

Nota: Se visible_characters_behavior è impostato su TextServer.VC_CHARS_BEFORE_SHAPING vengono conteggiate solo le righe visibili.

Nota: Se threaded è abilitato, questo metodo restituisce un valore per la parte caricata del documento. Usa is_finished() o finished per determinare se il documento ha caricato completamente.


int get_line_width(line: int) const 🔗

Restituisce la larghezza della riga trovata all'indice fornito.

Nota: Se threaded è abilitato, questo metodo restituisce un valore per la parte caricata del documento. Usa is_finished() o finished per determinare se il documento ha caricato completamente.


PopupMenu get_menu() const 🔗

Restituisce il PopupMenu di questo RichTextLabel. Come predefinito, questo menu viene visualizzato quando si clicca con il pulsante destro del mouse sul RichTextLabel.

È possibile aggiungere voci di menu personalizzate o rimuovere quelle standard. Assicurarti che gli ID non siano in conflitto con quelli standard (vedi MenuItems). Ad esempio:

func _ready():
    var menu = get_menu()
    # Rimuovi la voce "Seleziona tutto".
    menu.remove_item(MENU_SELECT_ALL)
    # Aggiungi voci personalizzate.
    menu.add_separator()
    menu.add_item("Duplicate Text", MENU_MAX + 1)
    # Connetti il callback.
    menu.id_pressed.connect(_on_item_pressed)

func _on_item_pressed(id):
    if id == MENU_MAX + 1:
        add_text("\n" + get_parsed_text())

Attenzione: Questo è un nodo interno obbligatorio, rimuoverlo e liberarlo potrebbe causare un arresto anomalo. Se desideri nasconderlo o nascondere uno dei suoi figli, usa la loro proprietà Window.visible.


int get_paragraph_count() const 🔗

Restituisce il numero totale di paragrafi (nuove righe o tag p nei tag di testo dello stack dei tag). Considera il testo avvolto come un paragrafo.


float get_paragraph_offset(paragraph: int) 🔗

Restituisce lo scostamento verticale del paragrafo trovato all'indice fornito.

Nota: Se threaded è abilitato, questo metodo restituisce un valore per la parte caricata del documento. Usa is_finished() o finished per determinare se il documento ha caricato completamente.


String get_parsed_text() const 🔗

Restituisce il testo senza marcatura BBCode.


String get_selected_text() const 🔗

Restituisce il testo della selezione attuale. Non include BBCode.


int get_selection_from() const 🔗

Restituisce l'indice del primo carattere della selezione attuale se una selezione è attiva, altrimenti -1. Non include BBCode.


float get_selection_line_offset() const 🔗

Restituisce lo scostamento verticale della riga della selezione attuale se una selezione è attiva, altrimenti -1.0.


int get_selection_to() const 🔗

Restituisce l'indice dell'ultimo carattere della selezione attuale se una selezione è attiva, altrimenti -1. Non include BBCode.


int get_total_character_count() const 🔗

Restituisce il numero totale di caratteri dai tag di testo. Non include i BBCode.


VScrollBar get_v_scroll_bar() 🔗

Restituisce la barra di scorrimento verticale.

Attenzione: Questo è un nodo interno obbligatorio, rimuoverlo e liberarlo potrebbe causare un arresto anomalo. Se si desidera nasconderlo o nascondere uno dei suoi figli, usa la loro proprietà CanvasItem.visible.


Rect2i get_visible_content_rect() const 🔗

Restituisce il rettangolo limite del contenuto visibile.

Nota: Questo metodo restituisce un valore corretto solo dopo che l'etichetta è stata disegnata.

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

int get_visible_line_count() const 🔗

Restituisce il numero di righe visibili.

Nota: Questo metodo restituisce un valore corretto solo dopo che l'etichetta è stata disegnata.

Nota: Se threaded è abilitato, questo metodo restituisce un valore per la parte caricata del documento. Usa is_finished() o finished per determinare se il documento ha caricato completamente.


int get_visible_paragraph_count() const 🔗

Restituisce il numero di paragrafi visibili. Un paragrafo è considerato visibile se almeno una delle sue righe è visibile.

Nota: Questo metodo restituisce un valore corretto solo dopo che l'etichetta è stata disegnata.

Nota: Se threaded è abilitato, questo metodo restituisce un valore per la parte caricata del documento. Usa is_finished() o finished per determinare se il documento ha caricato completamente.


void install_effect(effect: Variant) 🔗

Installa un effetto personalizzato. È possibile fare ciò anche nell'ispettore attraverso la proprietà custom_effects. effect dovrebbe essere un RichTextEffect valido.

Esempio: Con lo script seguente che si estende da RichTextEffect:

# effect.gd
class_name MyCustomEffect
extends RichTextEffect

var bbcode = "my_custom_effect"

# ...

L'effetto precedente può essere installato in RichTextLabel da uno script:

# rich_text_label.gd
extends RichTextLabel

func _ready():
    install_effect(MyCustomEffect.new())

    # In alternativa, se non si usa `class_name` nello script che estende RichTextEffect:
    install_effect(preload("res://effect.gd").new())

bool invalidate_paragraph(paragraph: int) 🔗

Invalida la cache del paragrafo paragraph e di tutti i paragrafi successivi.


bool is_finished() const 🔗

Se threaded è abilitato, restituisce true se il thread in background ha finito di elaborare il testo, altrimenti restituisce sempre true.


bool is_menu_visible() const 🔗

Restituisce se il menù è visibile. Usa questo invece di get_menu().visible per migliorare le prestazioni (in modo da evitare la creazione del menu).


bool is_ready() const 🔗

Deprecato: Use is_finished() instead.

Se threaded è abilitato, restituisce true se il thread in background ha finito di elaborare il testo, altrimenti restituisce sempre true.


void menu_option(option: int) 🔗

Esegue l'azione specificata come definito nell'enumerazione MenuItems.


void newline() 🔗

Aggiunge un tag di ritorno a capo allo stack dei tag.


void parse_bbcode(bbcode: String) 🔗

L'equivalente per assegnare di append_text(). Cancella lo stack dei tag e inserisce il nuovo contenuto.


Dictionary parse_expressions_for_values(expressions: PackedStringArray) 🔗

Elabora il parametro BBCode expressions in un dizionario.


void pop() 🔗

Termina il tag attuale. Da usare dopo i metodi push_* per chiudere manualmente i BBCode. Non è necessario che sia usato dopo i metodi add_*.


void pop_all() 🔗

Termina tutti i tag aperti dai metodi push_*.


void pop_context() 🔗

Termina i tag aperti dopo l'ultima chiamata a push_context() (incluso il marcatore di contesto) o tutti i tag se nessun marcatore di contesto è presente nello stack.


void push_bgcolor(bgcolor: Color) 🔗

Aggiunge un tag [bgcolor] allo stack dei tag.

Nota: Al colore di sfondo è applicato un rientro predefinito, che è controllato attraverso text_highlight_h_padding e text_highlight_v_padding. Ciò può portare le evidenziazioni a sovrapporsi se i colori di sfondo si trovano su righe/colonne adiacenti, quindi si consiglia di impostare tali elementi del tema su 0 se si desidera evitarlo.


void push_bold() 🔗

Aggiunge un tag [font] con un font in grassetto allo stack dei tag. Questo è lo stesso di aggiungere un tag [b] se non attualmente in un tag [i].


void push_bold_italics() 🔗

Aggiunge un tag [font] con un font in grassetto corsivo allo stack dei tag.


void push_cell() 🔗

Aggiunge un tag [cell] allo stack dei tag. Deve essere all'interno di un tag [table]. Vedi push_table() per i dettagli. Usa set_table_column_expand() per impostare il rapporto di espansione della colonna, set_cell_border_color() per impostare il bordo di una cella, set_cell_row_background_color() per impostare lo sfondo di una cella, set_cell_size_override() per sovrascrivere le dimensioni di una cella e set_cell_padding() per impostare il padding.


void push_color(color: Color) 🔗

Aggiunge un tag [color] allo stack dei tag.


void push_context() 🔗

Aggiunge un marcatore di contesto allo stack dei tag. Vedi pop_context().


void push_customfx(effect: RichTextEffect, env: Dictionary) 🔗

Aggiunge un tag di effetto personalizzato allo stack di tag. L'effetto non deve essere necessariamente in custom_effects. L'ambiente viene passato direttamente all'effetto.


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)) 🔗

Aggiunge un tag [dropcap] allo stack dei tag. Il capolettera è un elemento decorativo all'inizio di un paragrafo che è più grande del resto del testo.


void push_fgcolor(fgcolor: Color) 🔗

Aggiunge un tag [fgcolor] allo stack dei tag.

Nota: Al colore di primo piano è applicato un rientro predefinito, che è controllato attraverso text_highlight_h_padding e text_highlight_v_padding. Ciò può portare le evidenziazioni a sovrapporsi se i colori di primo piano si trovano su righe/colonne adiacenti, quindi si consiglia di impostare tali elementi del tema su 0 se si desidera evitarlo.


void push_font(font: Font, font_size: int = 0) 🔗

Aggiunge un tag [font] allo stack dei tag. Sostituisce i font predefiniti per la sua durata.

Passando 0 a font_size sarà utilizzata la dimensione esistente predefinita del font.


void push_font_size(font_size: int) 🔗

Aggiunge un tag [font_size] allo stack dei tag. Sostituisce la dimensione predefinita del font per la sua durata.


void push_hint(description: String) 🔗

Aggiunge una tag [hint] allo stack dei tag. Equivalente al BBCode [hint=qualcosa]{testo}[/hint].


void push_indent(level: int) 🔗

Aggiunge un tag [indent] allo stack dei tag. Moltiplica level per la tab_size attuale per determinare la nuova lunghezza del margine.


void push_italics() 🔗

Aggiunge un tag [font] con un font in corsivo allo stack dei tag. Questo è lo stesso di aggiungere un tag [i] se non attualmente in un tag [b].


void push_language(language: String) 🔗

Aggiunge il codice di lingua utilizzato per l'algoritmo di formazione del testo e le funzionalità dei font Open-Type.


void push_list(level: int, type: ListType, capitalize: bool, bullet: String = "•") 🔗

Aggiunge un tag [ol] o [ul] allo stack dei tag. Moltiplica level per la tab_size attuale per determinare la nuova lunghezza del margine.


void push_meta(data: Variant, underline_mode: MetaUnderline = 1, tooltip: String = "") 🔗

Aggiunge un tag meta allo stack dei tag. Simile al BBCode [url=something]{text}[/url], ma supporta metadati di tipo non-String.

Se meta_underlined è true, i tag meta visualizzano una sottolineatura. Questo comportamento può essere personalizzato con underline_mode.

Nota: I tag meta non fanno nulla di predefinito al clic. Per assegnare un comportamento al clic, collega meta_clicked a una funzione che viene chiamata quando viene cliccato il tag meta.


void push_mono() 🔗

Aggiunge un tag [font] con un font monospazio allo stack dei tag.


void push_normal() 🔗

Aggiunge un tag [font] con un font normale allo stack dei tag.


void push_outline_color(color: Color) 🔗

Aggiunge un tag [outline_color] allo stack dei tag. Aggiunge un contorno di testo per la sua durata.


void push_outline_size(outline_size: int) 🔗

Aggiunge un tag [outline_size] allo stack dei tag. Sostituisce la dimensione predefinita del contorno di testo per la sua durata.


void push_paragraph(alignment: HorizontalAlignment, base_direction: TextDirection = 0, language: String = "", st_parser: StructuredTextParser = 0, justification_flags: BitField[JustificationFlag] = 163, tab_stops: PackedFloat32Array = PackedFloat32Array()) 🔗

Aggiunge un tag [p] allo stack dei tag.


void push_strikethrough(color: Color = Color(0, 0, 0, 0)) 🔗

Aggiunge un tag [s] allo stack dei tag. Se il valore alfa di color è 0.0, è utilizzato il colore del font attuale, con l'alfa moltiplicato per strikethrough_alpha.


void push_table(columns: int, inline_align: InlineAlignment = 0, align_to_row: int = -1, name: String = "") 🔗

Aggiunge un tag [table=columns,inline_align] allo stack dei tag. Usa set_table_column_expand() per impostare il rapporto di espansione della colonna. Usa push_cell() per aggiungere le celle. name è utilizzato come nome della tabella per le applicazioni assistive.


void push_underline(color: Color = Color(0, 0, 0, 0)) 🔗

Aggiunge un tag [u] allo stack dei tag. Se il valore alfa di color è 0.0, è utilizzato il colore del font attuale, con l'alfa moltiplicato per underline_alpha.


void reload_effects() 🔗

Ricarica gli effetti personalizzati. Utile quando custom_effects viene modificato manualmente.


bool remove_paragraph(paragraph: int, no_invalidate: bool = false) 🔗

Rimuove un paragrafo di contenuto dall'etichetta. Restituisce true se il paragrafo esiste.

L'argomento paragraph è l'indice del paragrafo da rimuovere, può assumere valori nell'intervallo [0, get_paragraph_count() - 1].

Se no_invalidate è impostato su true, la cache per i paragrafi successivi non viene invalidata. Utilizzalo per aggiornamenti più rapidi se il paragrafo eliminato è completamente a se stante (non ha tag non chiusi) o se questa chiamata fa parte di un'operazione di modifica complessa e invalidate_paragraph() verrà chiamato alla fine dell'operazione.


void scroll_to_line(line: int) 🔗

Scorre la riga superiore della finestra per farla corrispondere a line.


void scroll_to_paragraph(paragraph: int) 🔗

Scorre la riga superiore della finestra per farla corrispondere alla prima riga del paragrafo paragraph.


void scroll_to_selection() 🔗

Scorre fino all'inizio della selezione attuale.


void select_all() 🔗

Seleziona tutto il testo.

Se selection_enabled è false, nessuna selezione sarà effettuata.


void set_cell_border_color(color: Color) 🔗

Imposta il colore del bordo di una cella di tabella.


void set_cell_padding(padding: Rect2) 🔗

Imposta la spaziatura interna di una cella di tabella.


void set_cell_row_background_color(odd_row_bg: Color, even_row_bg: Color) 🔗

Imposta il colore di una cella di tabella. È possibile specificare colori separati per righe alternate.


void set_cell_size_override(min_size: Vector2, max_size: Vector2) 🔗

Imposta le dimensioni minime e massime per una cella di tabella.


void set_table_column_expand(column: int, expand: bool, ratio: int = 1, shrink: bool = true) 🔗

Modifica le opzioni di espansione della colonna selezionata. Se expand è true, la colonna si espande in proporzione al suo rapporto di espansione rispetto ai rapporti delle altre colonne.

Ad esempio, 2 colonne con rapporti 3 e 4 più 70 pixel di larghezza disponibile si espanderebbero rispettivamente di 30 e 40 pixel.

Se expand è false, la colonna non contribuirà al rapporto totale.


void set_table_column_name(column: int, name: String) 🔗

Imposta il nome di una colonna di una tabella per le applicazioni assistive.


void update_image(key: Variant, mask: BitField[ImageUpdateMask], image: Texture2D, width: float = 0, height: float = 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_unit: ImageUnit = 0, height_unit: ImageUnit = 0) 🔗

Aggiorna le immagini esistenti con la chiave key. Vengono aggiornate solo le proprietà specificate dai bit di mask. Vedi add_image().


Descrizioni delle proprietà del tema

Color default_color = Color(1, 1, 1, 1) 🔗

Il colore predefinito del testo.


Color font_outline_color = Color(0, 0, 0, 1) 🔗

La tinta predefinita del contorno del testo.


Color font_selected_color = Color(0, 0, 0, 0) 🔗

Il colore del testo selezionato, utilizzato quando selection_enabled è true. Se uguale a Color(0, 0, 0, 0), sarà ignorato.


Color font_shadow_color = Color(0, 0, 0, 0) 🔗

Il colore dell'ombra del font.


Color selection_color = Color(0.1, 0.1, 1, 0.8) 🔗

Il colore del riquadro di selezione.


Color table_border = Color(0, 0, 0, 0) 🔗

Il colore predefinito del bordo della cella.


Color table_even_row_bg = Color(0, 0, 0, 0) 🔗

Il colore predefinito di sfondo per le righe pari.


Color table_odd_row_bg = Color(0, 0, 0, 0) 🔗

Il colore predefinito di sfondo per le righe dispari.


int line_separation = 0 🔗

Spaziatura verticale aggiuntiva tra le righe (in pixel), la spaziatura è aggiunta alla discesa della riga. Questo valore può essere negativo.


int outline_size = 0 🔗

La dimensione del contorno del testo.

Nota: Se si utilizza un font con FontFile.multichannel_signed_distance_field abilitato, il suo FontFile.msdf_pixel_range deve essere impostato su almeno il doppio del valore di outline_size affinché il rendering del contorno appaia corretto. Altrimenti, il contorno potrebbe apparire troncato prima del previsto.


int paragraph_separation = 0 🔗

Spaziatura verticale aggiuntiva tra paragrafi (in pixel). La spaziatura è aggiunta dopo l'ultima riga. Questo valore può essere negativo.


int shadow_offset_x = 1 🔗

Lo scostamento orizzontale dell'ombra del font.


int shadow_offset_y = 1 🔗

Lo scostamento verticale dell'ombra del font.


int shadow_outline_size = 1 🔗

La dimensione del contorno dell'ombra.


int strikethrough_alpha = 50 🔗

La trasparenza predefinita del colore di barratura (in percentuale). Per le barrature con un colore personalizzato, questo elemento del tema è utilizzato solo se il valore alfa del colore personalizzato è 0.0 (completamente trasparente).


int table_h_separation = 3 🔗

La separazione orizzontale degli elementi in una tabella.


int table_v_separation = 3 🔗

La separazione verticale degli elementi in una tabella.


int text_highlight_h_padding = 3 🔗

La spaziatura orizzontale attorno ai riquadri disegnati dai tag [fgcolor] e [bgcolor]. Ciò non influisce sull'aspetto della selezione del testo. Per evitare il rischio che le evidenziazioni adiacenti si sovrappongano, imposta questo su 0 per disabilitare la spaziatura.


int text_highlight_v_padding = 3 🔗

La spaziatura verticale attorno ai riquadri disegnati dai tag [fgcolor] e [bgcolor]. Ciò non influisce sull'aspetto della selezione del testo. Per evitare il rischio che le evidenziazioni adiacenti si sovrappongano, imposta questo su 0 per disabilitare la spaziatura.


int underline_alpha = 50 🔗

La trasparenza predefinita del colore di sottolineatura (in percentuale). Per le sottolineature con un colore personalizzato, questo elemento del tema è utilizzato solo se il valore alfa del colore personalizzato è 0.0 (completamente trasparente).


Font bold_font 🔗

Il font utilizzato per il testo in grassetto.


Font bold_italics_font 🔗

Il font utilizzato per il testo in grassetto e corsivo.


Font italics_font 🔗

Il font utilizzato per il testo in corsivo.


Font mono_font 🔗

Il font utilizzato per il testo a spaziatura fissa.


Font normal_font 🔗

Il font predefinito di testo.


int bold_font_size 🔗

La dimensione del font utilizzata per il testo in grassetto.


int bold_italics_font_size 🔗

La dimensione del font utilizzata per il testo in grassetto e corsivo.


int italics_font_size 🔗

La dimensione del font utilizzata per il testo in corsivo.


int mono_font_size 🔗

La dimensione del font utilizzata per il testo a spaziatura fissa.


int normal_font_size 🔗

La dimensione predefinita del font.


Texture2D horizontal_rule 🔗

La texture della linea orizzontale.


StyleBox focus 🔗

Lo sfondo utilizzato quando il RichTextLabel è focalizzato. Lo StyleBox di focus è visualizzato sopra lo StyleBox di base, quindi è necessario utilizzare uno StyleBox parzialmente trasparente per garantire che lo StyleBox di base rimanga visibile. Uno StyleBox che rappresenta un contorno o una sottolineatura funziona bene per questo scopo. Per disabilitare l'effetto visivo del focus, assegna una risorsa StyleBoxEmpty. Tieni presente che disattivare l'effetto visivo di focus ridurrà l'usabilità della navigazione tramite tastiera o controller, perciò non è consigliato per motivi di accessibilità.


StyleBox normal 🔗

Lo sfondo normale per il RichTextLabel.