Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
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à
|
||
BitField[LineBreakFlag] |
|
|
|
||
clip_contents |
|
|
|
||
|
||
|
||
|
||
|
||
focus_mode |
|
|
|
||
|
||
BitField[JustificationFlag] |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
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 |
|
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: 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
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
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.
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.
Copia il testo selezionato.
Seleziona tutto il testo del RichTextLabel.
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 🔗
void set_autowrap_mode(value: AutowrapMode)
AutowrapMode get_autowrap_mode()
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 🔗
void set_autowrap_trim_flags(value: BitField[LineBreakFlag])
BitField[LineBreakFlag] get_autowrap_trim_flags()
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.
Se true, l'etichetta usa la formattazione in BBCode.
Nota: Questo riguarda solo il contenuto di text, non lo stack dei tag.
Se true, un clic destro visualizza il menu contestuale.
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 🔗
Se true, il testo selezionato verrà deselezionato quando si perde il focus.
bool drag_and_drop_selection_enabled = true 🔗
Se true, consente di trascinare e rilasciare il testo selezionato.
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.
Se true, l'etichetta sottolinea i tag di suggerimento come [hint=description]{text}[/hint].
HorizontalAlignment horizontal_alignment = 0 🔗
void set_horizontal_alignment(value: HorizontalAlignment)
HorizontalAlignment get_horizontal_alignment()
Controlla l'allineamento orizzontale del testo. Supporta sinistra, centro, destra, e riempi (noto anche come giustifica).
BitField[JustificationFlag] justification_flags = 163 🔗
void set_justification_flags(value: BitField[JustificationFlag])
BitField[JustificationFlag] get_justification_flags()
Regole di allineamento del riempimento per le righe.
Language code used for line-breaking and text shaping algorithms. If left empty, the current locale is used instead.
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 🔗
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.
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 🔗
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 🔗
Se true, l'etichetta permette di selezionare il testo.
bool shortcut_keys_enabled = true 🔗
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 🔗
void set_structured_text_bidi_override(value: StructuredTextParser)
StructuredTextParser get_structured_text_bidi_override()
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.
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() 🔗
void set_tab_stops(value: PackedFloat32Array)
PackedFloat32Array get_tab_stops()
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.
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 🔗
void set_text_direction(value: TextDirection)
TextDirection get_text_direction()
Direzione di scrittura del testo di base.
Se true, l'elaborazione del testo è eseguita in un thread in background.
VerticalAlignment vertical_alignment = 0 🔗
void set_vertical_alignment(value: VerticalAlignment)
VerticalAlignment get_vertical_alignment()
Controlla l'allineamento verticale del testo. Supporta sopra, centro, sotto e riempi.
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 🔗
void set_visible_characters_behavior(value: VisibleCharactersBehavior)
VisibleCharactersBehavior get_visible_characters_behavior()
Il comportamento di ritaglio quando è impostato visible_characters o 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.
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.
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.
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())
public override void _Ready()
{
var menu = GetMenu();
// Rimuovi la voce "Seleziona tutto".
menu.RemoveItem(RichTextLabel.MenuItems.SelectAll);
// Aggiungi voci personalizzate.
menu.AddSeparator();
menu.AddItem("Duplicate Text", RichTextLabel.MenuItems.Max + 1);
// Aggiungi gestore dell'evento.
menu.IdPressed += OnItemPressed;
}
public void OnItemPressed(int id)
{
if (id == TextEdit.MenuItems.Max + 1)
{
AddText("\n" + GetParsedText());
}
}
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
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 🔗
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.
Se threaded è abilitato, restituisce true se il thread in background ha finito di elaborare il testo, altrimenti restituisce sempre true.
Restituisce se il menù è visibile. Usa questo invece di get_menu().visible per migliorare le prestazioni (in modo da evitare la creazione del menu).
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.
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.
Spaziatura verticale aggiuntiva tra le righe (in pixel), la spaziatura è aggiunta alla discesa della riga. Questo valore può essere negativo.
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.
Lo scostamento orizzontale dell'ombra del font.
Lo scostamento verticale dell'ombra del font.
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).
La separazione orizzontale degli elementi in una tabella.
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.
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).
Il font utilizzato per il testo in grassetto.
Il font utilizzato per il testo in grassetto e corsivo.
Il font utilizzato per il testo in corsivo.
Il font utilizzato per il testo a spaziatura fissa.
Il font predefinito di testo.
La dimensione del font utilizzata per il testo in grassetto.
La dimensione del font utilizzata per il testo in grassetto e corsivo.
La dimensione del font utilizzata per il testo in corsivo.
La dimensione del font utilizzata per il testo a spaziatura fissa.
La dimensione predefinita del font.
La texture della linea orizzontale.
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à.
Lo sfondo normale per il RichTextLabel.