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

Hérite de : Control < CanvasItem < Node < Object

Un contrôle pour afficher du texte qui peut contenir différents styles de police, images et formatage de base.

Description

Un contrôle pour afficher du texte qui peut contenir des polices personnalisées, des images et un formatage de base. RichTextLabel gère ce contenu dans une pile interne de marqueurs. Il peut aussi s'adapter à une hauteur/largeur données.

Note : newline(), push_paragraph(), "\n", "\r\n", la balise p et les marqueurs d'alignement commencent un nouveau paragraphe. Chaque paragraphe est traité indépendamment, dans son propre contexte BiDi. Si vous voulez forcer le retour à la ligne dans un paragraphe, n'importe quelle caractère de fin de ligne peut être utilisé, comme par exemple Saut de page (U+000C), Fin de ligne (U+0085), ou le Séparateur de lignes (U+2028).

Note : Les assignations à text effacent la pile des balises et la reconstruit à partir du contenu de la propriété. Chaque modification faite à text effacera les modifications précédentes faites depuis une autre source manuelle comme append_text() et les méthodes push_* / pop().

Note : RichTextLabel ne supporte pas les balises BBCode intriquées. Par exemple, au lieu d'utiliser [b]bold[i]bold italic[/b]italic[/i], utilisez [b]bold[i]bold italic[/i][/b][i]italic[/i].

Note : Les méthodes push_*/pop_* ne modifient pas le BBCode.

Note : Tant que bbcode_enabled est activé, les balises d'alignement tels que [center] prendront la priorité sur le paramètre horizontal_alignment qui détermine l'alignement de texte par défaut.

Tutoriels

Propriétés

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

Méthodes

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)

Propriétés du thème

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


Signaux

finished() 🔗

Déclenché lorsque le document est entièrement chargé.

Note : Cela peut se produire avant que le texte ne soit traité pour le dessin. Les valeurs de défilement peuvent ne pas être valides jusqu'à ce que le document soit dessiné pour la première fois après ce signal.


meta_clicked(meta: Variant) 🔗

Déclenché lorsque l'utilisateur clique sur du contenu entre des méta-balises (URL). Si le méta est défini en BBCode, par exemple [url={"clé": "valeur"}]Texte[/url], alors le paramètre pour ce signal sera toujours un type String. Si un type particulier ou un objet est souhaité, la méthode push_meta() doit être utilisée pour insérer manuellement les données dans la pile des balises. Alternativement, vous pouvez convertir l'entrée String au type souhaité en fonction de son contenu (comme appeler JSON.parse() dessus).

Par exemple, la méthode suivante peut être connectée à meta_clicked pour ouvrir des URLs cliquées en utilisant le navigateur Web par défaut de l'utilisateur :

# Cela suppose que le signal `meta_clicked` de RichTextLabel a été connecté à
# la fonction ci-dessous en utilisant le dialogue de connexion de signal.
func _richtextlabel_on_meta_clicked(meta):
    # `meta` est de type Variant, alors convertissez-le en un String pour éviter des erreurs de script durant l'exécution.
    OS.shell_open(str(meta))

meta_hover_ended(meta: Variant) 🔗

Se déclenche lorsque la souris sort d'une méta-balise.


meta_hover_started(meta: Variant) 🔗

Se déclenche lorsque la souris entre dans une méta-balise.


Énumérations

enum ListType: 🔗

ListType LIST_NUMBERS = 0

Chaque élément de la liste a un chiffre comme marqueur.

ListType LIST_LETTERS = 1

Chaque élément de la liste a une lettre comme marqueur.

ListType LIST_ROMAN = 2

Chaque élément de la liste a un nombre romain comme marqueur.

ListType LIST_DOTS = 3

Chaque élément de la liste a un cercle rempli comme marqueur.


enum MenuItems: 🔗

MenuItems MENU_COPY = 0

Copie le texte sélectionné.

MenuItems MENU_SELECT_ALL = 1

Sélectionne le texte RichTextLabel entier.

MenuItems MENU_MAX = 2

Représente la taille de l'énumération MenuItems.


enum MetaUnderline: 🔗

MetaUnderline META_UNDERLINE_NEVER = 0

Les méta-balises ne sont pas soulignées, même si meta_underlined vaut true.

MetaUnderline META_UNDERLINE_ALWAYS = 1

Si meta_underlined vaut true, les méta-balises sont toujours soulignées.

MetaUnderline META_UNDERLINE_ON_HOVER = 2

Si meta_underlined vaut true, les méta-balises sont soulignées lorsque le curseur de la souris les survole.


flags ImageUpdateMask: 🔗

ImageUpdateMask UPDATE_TEXTURE = 1

Si ce bit est défini, update_image() modifie la texture de l'image.

ImageUpdateMask UPDATE_SIZE = 2

Si ce bit est défini, update_image() modifie la taille de l'image.

ImageUpdateMask UPDATE_COLOR = 4

Si ce bit est défini, update_image() modifie la couleur de l'image.

ImageUpdateMask UPDATE_ALIGNMENT = 8

Si ce bit est défini, update_image() modifie l'alignement de l'image incorporée.

ImageUpdateMask UPDATE_REGION = 16

Si ce bit est défini, update_image() change la région de la texture de l'image.

ImageUpdateMask UPDATE_PAD = 32

Si ce bit est défini, update_image() modifie le rembourrage de l'image.

ImageUpdateMask UPDATE_TOOLTIP = 64

Si ce bit est défini, update_image() change l'info-bulle de l'image.

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.


Descriptions des propriétés

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 🔗

Drapeaux de trimming des espaces en autowrap. Voir TextServer.BREAK_TRIM_START_EDGE_SPACES et TextServer.BREAK_TRIM_END_EDGE_SPACES pour plus d'informations.


bool bbcode_enabled = false 🔗

  • void set_use_bbcode(value: bool)

  • bool is_using_bbcode()

Si true, l'étiquette utilise le formatage BBCode.

Note : Cela n'affecte que le contenu de text, pas la pile des balises.


bool context_menu_enabled = false 🔗

  • void set_context_menu_enabled(value: bool)

  • bool is_context_menu_enabled()

Si true, un clic droit affiche le menu contextuel.


Array custom_effects = [] 🔗

  • void set_effects(value: Array)

  • Array get_effects()

Les effets personnalisés actuellement installés. Il s'agit d'un tableau de RichTextEffects.

Pour ajouter un effet personnalisé, il est plus pratique d'utiliser 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()

Si true, le texte actuellement sélectionné sera désélectionné quand le focus sera perdu.


bool drag_and_drop_selection_enabled = true 🔗

  • void set_drag_and_drop_selection_enabled(value: bool)

  • bool is_drag_and_drop_selection_enabled()

Si true, permet le déposé-glissé du texte sélectionné.


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

Si true, l'étiquette souligne les balises d'indice comme [hint=description]{texte}[/hint].


HorizontalAlignment horizontal_alignment = 0 🔗

Contrôle l'alignement horizontal du texte. Supporte à gauche, au centre, à droite, ou remplir (aussi connu comme justifié).


BitField[JustificationFlag] justification_flags = 163 🔗

Règles d'alignement du remplissage des lignes.


String language = "" 🔗

Code de langue utilisé pour les algorithmes de retour à la ligne et de "text shaping". Si laissé vide, la langue actuelle est utilisée à la place.


bool meta_underlined = true 🔗

  • void set_meta_underline(value: bool)

  • bool is_meta_underlined()

Si true, l'étiquette souligne les méta-balises comme [url]{text}[/url]. Ces balises peuvent appeler une fonction lorsqu'elles sont cliquées si meta_clicked est connecté à une fonction.


int progress_bar_delay = 1000 🔗

  • void set_progress_bar_delay(value: int)

  • int get_progress_bar_delay()

Le délai après lequel la barre de progression du chargement est affichée, en millisecondes. Définir à -1 pour désactiver entièrement la barre de progression.

Note : La barre de progression n'est affichée que si threaded est activé.


bool scroll_active = true 🔗

  • void set_scroll_active(value: bool)

  • bool is_scroll_active()

Si true, la barre de défilement est visible. Définir ceci à false ne bloque pas complètement le défilement. Voir scroll_to_line().


bool scroll_following = false 🔗

  • void set_scroll_follow(value: bool)

  • bool is_scroll_following()

Si true, la fenêtre descend/remonte automatiquement pour afficher le nouveau contenu.


bool scroll_following_visible_characters = false 🔗

  • void set_scroll_follow_visible_characters(value: bool)

  • bool is_scroll_following_visible_characters()

Si true, la fenêtre défile pour afficher la dernière ligne visible lorsque visible_characters ou visible_ratio sont modifiés.


bool selection_enabled = false 🔗

  • void set_selection_enabled(value: bool)

  • bool is_selection_enabled()

Si true, le label autorise la sélection du texte.


bool shortcut_keys_enabled = true 🔗

  • void set_shortcut_keys_enabled(value: bool)

  • bool is_shortcut_keys_enabled()

Si true, les touches de raccourci pour les éléments de menu contextuel sont activées, même si le menu contextuel est désactivé.


StructuredTextParser structured_text_bidi_override = 0 🔗

Définit la redéfinition de l'algorithme BiDi pour le texte structuré.


Array structured_text_bidi_override_options = [] 🔗

  • void set_structured_text_bidi_override_options(value: Array)

  • Array get_structured_text_bidi_override_options()

Définit des options supplémentaires pour la redéfinition BiDi.


int tab_size = 4 🔗

  • void set_tab_size(value: int)

  • int get_tab_size()

Le nombre d'espaces associés à une seule longueur de tabulation. N'affecte pas \t dans les balises de texte, seulement les balises d’indentation.


PackedFloat32Array tab_stops = PackedFloat32Array() 🔗

Aligns text to the given tab-stops.

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 = "" 🔗

Le texte de l'étiquette en format BBCode. N'est pas représentatif des modifications manuelles à la pile des balises interne. Efface les modifications apportées par d'autres méthodes lorsque modifié.

Note : Si bbcode_enabled vaut true, il n'est pas conseillé d'utiliser l'opérateur += avec text (par ex. text += "une chaîne") car il remplace le texte entier et peut causer des ralentissements. Il effacera également tout le BBCode qui a été ajouté à la pile en utilisant les méthodes push_*. Utilisez append_text() pour ajouter du texte à la place, à moins que vous n'ayez absolument besoin de fermer une balise qui a été ouverte dans un appel de méthode antérieur.


TextDirection text_direction = 0 🔗

Direction d'écriture du texte de base.


bool threaded = false 🔗

  • void set_threaded(value: bool)

  • bool is_threaded()

Si true, le traitement du texte est effectué dans un thread d'arrière-plan.


VerticalAlignment vertical_alignment = 0 🔗

Contrôle l'alignement vertical du texte. Supporte en haut, au centre, en bas et remplir.


int visible_characters = -1 🔗

  • void set_visible_characters(value: int)

  • int get_visible_characters()

Le nombre de caractères à afficher. Si défini à -1, tous les caractères sont affichés. Cela peut être utile lors de l'animation d'un texte apparaissant dans une boîte de dialogue.

Note : Définir cette propriété met à jour visible_ratio en conséquence.

Note : Les caractères sont comptés comme des codes Unicode. Un seul graphème visible peut contenir plusieurs points de code (par exemple, certains emojis utilisent trois points de code). Un seul point de code peut contenir deux caractères UTF-16, qui sont utilisés dans les chaînes C#.


VisibleCharactersBehavior visible_characters_behavior = 0 🔗

Le comportement de coupure lorsque visible_characters ou visible_ratio est défini.


float visible_ratio = 1.0 🔗

  • void set_visible_ratio(value: float)

  • float get_visible_ratio()

La fraction des caractères à afficher, par rapport au nombre total de caractères (voir get_total_character_count()). Si défini à 1.0, tous les caractères sont affichés. Si défini à 0.5, seulement la moitié des caractères seront affichés. Cela peut être utile lors de l'animation du texte apparaissant dans une boîte de dialogue.

Note : Définir cette propriété met à jour visible_characters en conséquence.


Descriptions des méthodes

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

Ajoute une ligne horizontale qui peut être utilisée pour séparer le contenu.

Si width_in_percent est défini, width est un pourcentage de la largeur du contrôle au lieu de pixels.

Si height_in_percent est défini, height est un pourcentage de la hauteur du contrôle au lieu de pixels.


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

Adds an image's opening and closing tags to the tag stack, optionally providing a width and height to resize the image, a color to tint the image and a region to only use parts of the image.

If width or height is set to 0, the image size will be adjusted in order to keep the original aspect ratio.

If width and height are not set, but region is, the region's rect will be used.

key is an optional identifier, that can be used to modify the image via update_image().

If pad is set, and the image is smaller than the size specified by width and height, the image padding is added to match the size instead of upscaling.

Parameters width_unit and height_unit determine the units used to calculate the image width and height, respectively.

alt_text is used as the image description for assistive apps.


void add_text(text: String) 🔗

Ajoute du texte brut non interprété en BBCode à le pile des balises.


void append_text(bbcode: String) 🔗

Parse le bbcode et ajoute des balises à la pile des balises au besoin.

Note : En utilisant cette méthode, vous ne pouvez pas fermer une balise qui a été ouverte dans un appel précédent à append_text(). Ceci est fait pour améliorer les performances, en particulier lors de la mise à jour de grands RichTextLabels car la reconstruction de tout le BBCode à chaque fois serait plus lent. Si vous avez absolument besoin de fermer une balise dans un futur appel de méthode, ajoutez au text au lieu d'utiliser append_text().


void clear() 🔗

Vide la pile des balises, ce qui fait que l'étiquette n'affiche rien.

Note : Cette méthode n'affecte pas text, et son contenu s'affichera de nouveau si l'étiquette est redessinée. Cependant, définir text à un String vide va également vider la pile.


void deselect() 🔗

Efface la sélection actuelle.


int get_character_line(character: int) 🔗

Renvoie le numéro de ligne de la position de caractère fournie. Les numéros de lignes et de caractères sont tous deux indexés en commençant à zéro.

Note : Si threaded est activé, cette méthode renvoie une valeur pour la partie chargée du document. Utilisez is_finished() ou finished pour déterminer si le document est entièrement chargé.


int get_character_paragraph(character: int) 🔗

Renvoie le numéro de paragraphe de la position de caractère fournie. Les numéros de paragraphe et de caractère sont tous deux indexés en commençant à zéro.

Note : Si threaded est activé, cette méthode renvoie une valeur pour la partie chargée du document. Utilisez is_finished() ou finished pour déterminer si le document est entièrement chargé.


int get_content_height() const 🔗

Renvoie la hauteur du contenu.

Note : Cette méthode renvoie toujours la taille du contenu complet, et n'est pas affectée par visible_ratio et visible_characters. Pour obtenir la taille du contenu visible, utilisez get_visible_content_rect().

Note : Si threaded est activé, cette méthode renvoie une valeur pour la partie chargée du document. Utilisez is_finished() ou finished pour déterminer si le document est entièrement chargé.


int get_content_width() const 🔗

Renvoie la largeur du contenu.

Note : Cette méthode renvoie toujours la taille de contenu complet, et n'est pas affectée par visible_ratio et visible_characters. Pour obtenir la taille du contenu visible, utilisez get_visible_content_rect().

Note : Si threaded est activé, cette méthode renvoie une valeur pour la partie chargée du document. Utilisez is_finished() ou finished pour déterminer si le document est entièrement chargé.


int get_line_count() const 🔗

Renvoie le nombre total de lignes dans le texte. Les textes avec des retours à la ligne sont comptés comme plusieurs lignes.

Note : Si threaded est activé, cette méthode renvoie une valeur pour la partie chargée du document. Utilisez is_finished() ou finished pour déterminer si le document est entièrement chargé.


int get_line_height(line: int) const 🔗

Renvoie la hauteur de la ligne trouvée à l'index fourni.

Note : Si threaded est activé, cette méthode renvoie une valeur pour la partie chargée du document. Utilisez is_finished() ou finished pour déterminer si le document est entièrement chargé.


float get_line_offset(line: int) 🔗

Renvoie le décalage vertical de la ligne trouvée à l'index fourni.

Note : Si threaded est activé, cette méthode renvoie une valeur pour la partie chargée du document. Utilisez is_finished() ou finished pour déterminer si le document est entièrement chargé.


Vector2i get_line_range(line: int) 🔗

Renvoie les index des premiers et des derniers caractères visibles pour la ligne line donnée, en tant que Vector2i.

Note : Si visible_characters_behavior est défini à TextServer.VC_CHARS_BEFORE_SHAPING seules les lignes retournant à la ligne visibles sont comptées.

Note : Si threaded est activé, cette méthode renvoie une valeur pour la partie chargée du document. Utilisez is_finished() ou finished pour déterminer si le document est entièrement chargé.


int get_line_width(line: int) const 🔗

Renvoie la largeur de la ligne trouvée à l'index fourni.

Note : Si threaded est activé, cette méthode renvoie une valeur pour la partie chargée du document. Utilisez is_finished() ou finished pour déterminer si le document est entièrement chargé.


PopupMenu get_menu() const 🔗

Renvoie le PopupMenu de ce RichTextLabel. Par défaut, ce menu s'affiche lors d'un clic droit sur le RichTextLabel.

Vous pouvez ajouter des éléments de menu personnalisés ou supprimer ceux standard. Assurez-vous que vos identifiants ne sont pas en conflit avec les identifiants standards (voir MenuItems). Par exemple :

func _ready():
    var menu = get_menu()
    # Retirer l’élément "Sélectionner tout".
    menu.remove_item(MENU_SELECT_ALL)
    # Ajouter des éléments personnalisés.
    menu.add_separator()
    menu.add_item("Dupliquer texte", MENU_MAX + 1)
    # Connecter le callback.
    menu.id_pressed.connect(_on_item_pressed)

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

Avertissement : Il s'agit d'un nœud interne nécessaire, le retirer et le libérer peut causer un plantage. Si vous voulez le cacher lui ou l'un de ses enfants, utilisez plutôt Window.visible.


int get_paragraph_count() const 🔗

Renvoie le nombre total de paragraphes (balises nouvelle ligne ou p dans la pile des balises du texte). Considère un texte renvoyé automatiquement à la ligne comme un seul paragraphe.


float get_paragraph_offset(paragraph: int) 🔗

Renvoie le décalage vertical du paragraphe trouvé à l'index fourni.

Note : Si threaded est activé, cette méthode renvoie une valeur pour la partie chargée du document. Utilisez is_finished() ou finished pour déterminer si le document est entièrement chargé.


String get_parsed_text() const 🔗

Renvoie le texte sans balisage BBCode.


String get_selected_text() const 🔗

Renvoie le texte actuellement sélectionné. N'inclut pas les BBCodes.


int get_selection_from() const 🔗

Renvoie l'index du premier caractère de la sélection actuelle si une sélection est active, -1 sinon. N'inclut pas les BBCodes.


float get_selection_line_offset() const 🔗

Returns the current selection vertical line offset if a selection is active, -1.0 otherwise.


int get_selection_to() const 🔗

Renvoie l'index du dernier caractère de la sélection actuelle si une sélection est active, -1.0 sinon. N'inclut pas les BBCodes.


int get_total_character_count() const 🔗

Renvoie le nombre total de caractères des marqueurs du texte. N'inclus pas les BBCodes.


VScrollBar get_v_scroll_bar() 🔗

Renvoie la barre de défilement verticale.

Avertissement : Il s'agit d'un nœud interne requis, le retirer et le libérer peut causer un plantage. Si vous voulez le cacher lui ou un de ses enfants, utilisez la propriété CanvasItem.visible.


Rect2i get_visible_content_rect() const 🔗

Renvoie le rectangle délimitant du contenu visible.

Note : Cette méthode renvoie une valeur correcte seulement après que l'étiquette a été dessinée.

extends RichTextLabel

@export var panneau_arriere_plan : Panel

func _ready():
    await draw
    panneau_arriere_plan.position = get_visible_content_rect().position
    panneau_arriere_plan.size = get_visible_content_rect().size

int get_visible_line_count() const 🔗

Renvoie le nombre de lignes visibles.

Note : Cette méthode renvoie une valeur correcte seulement après que le texte ait été dessiné.

Note : Si threaded est activé, cette méthode renvoie une valeur pour la partie chargée du document. Utilisez is_finished() ou finished pour déterminer si le document est entièrement chargé.


int get_visible_paragraph_count() const 🔗

Renvoie le nombre de paragraphes visibles. Un paragraphe est considéré comme visible si au moins une de ses lignes est visible.

Note : Cette méthode renvoie une valeur correcte seulement après que l'étiquette ait été dessinée.

Note : Si threaded est activé, cette méthode renvoie une valeur pour la partie chargée du document. Utilisez is_finished() ou finished pour déterminer si le document est entièrement chargé.


void install_effect(effect: Variant) 🔗

Installe un effet personnalisé. Cela peut également être fait dans l'Inspecteur par l'intermédiaire de la propriété custom_effects. effect devrait être un RichTextEffect valide.

Exemple : Avec le script suivant étendant RichTextEffect :

# effet.gd
class_name MonEffetPerso
extends RichTextEffect

var bbcode = "mon_effet_perso"

# ...

L'effet ci-dessus peut être installé dans RichTextLabel depuis un script :

# rich_text_label.gd
extends RichTextLabel

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

    # Sinon, sans utiliser `class_name` dans le script qui étend RichTextEffect :
    install_effect(preload("res://effet.gd").new())

bool invalidate_paragraph(paragraph: int) 🔗

Invalide paragraph et le cache des paragraphes suivants.


bool is_finished() const 🔗

Si threaded est activé, renvoie true si le thread d'arrière-plan a terminé le traitement du texte, sinon renvoie toujours true.


bool is_menu_visible() const 🔗

Renvoie si le menu est visible. Utilisez ceci au lieu de get_menu().visible pour améliorer les performances (pour éviter la création du menu).


bool is_ready() const 🔗

Obsolète : Use is_finished() instead.

Si threaded est activé, renvoie true si le thread d'arrière-plan a terminé le traitement du texte, sinon renvoie toujours true.


void menu_option(option: int) 🔗

Exécute l'action donnée comme définit par l'énumération MenuItems.


void newline() 🔗

Ajoute une balise de retour à la ligne à la pile des balises.


void parse_bbcode(bbcode: String) 🔗

La version en assignation de append_text(). Vide la pile des balises et insère le nouveau contenu.


Dictionary parse_expressions_for_values(expressions: PackedStringArray) 🔗

Interprète le paramètre BBCode expressions en un dictionnaire.


void pop() 🔗

Termine la balise actuelle. Utilisez les méthodes push_* pour fermer manuellement des BBCodes. Ne doit pas forcément suivre les méthodes add_*.


void pop_all() 🔗

Termine toutes les balises ouvertes par les méthodes push_*.


void pop_context() 🔗

Terminates tags opened after the last push_context() call (including context marker), or all tags if there's no context marker on the stack.


void push_bgcolor(bgcolor: Color) 🔗

Adds a [bgcolor] tag to the tag stack.

Note: The background color has padding applied by default, which is controlled using text_highlight_h_padding and text_highlight_v_padding. This can lead to overlapping highlights if background colors are placed on neighboring lines/columns, so consider setting those theme items to 0 if you want to avoid this.


void push_bold() 🔗

Ajoute une balise [font] avec une police en gras à la pile des balises . Ceci est identique à l'ajout d'une balise [b] si nous ne sommes pas actuellement dans une balise[i].


void push_bold_italics() 🔗

Ajoute une balise [font] avec une police en italique gras à la pile des balises.


void push_cell() 🔗

Ajoute une balise [cell] à la pile des balises. Doit être à l'intérieur d'une balise [table]. Voir push_table() pour plus de détails. Utilisez set_table_column_expand() pour définir le rapport d'extension de la colonne, set_cell_border_color() pour définir la bordure de la cellule, set_cell_row_background_color() pour définir l'arrière-plan de la cellule, set_cell_size_override() pour redéfinir la taille de la cellule, et set_cell_padding() pour définir le rembourrage.


void push_color(color: Color) 🔗

Ajoute une balise [color] à la pile des balises.


void push_context() 🔗

Ajoute un marqueur de contexte à la pile des balises. Voir pop_context().


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

Ajoute une balise d'effet personnalisé à la pile des balises. L'effet n'a pas besoin d'être dans custom_effects. L'environnement est directement transmis à l'effet.


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

Ajoute une balise [dropcap] à la pile des balises. Le dropcap, ou lettrine en français, est un élément décoratif au début d'un paragraphe qui est plus grand que le reste du texte.


void push_fgcolor(fgcolor: Color) 🔗

Adds a [fgcolor] tag to the tag stack.

Note: The foreground color has padding applied by default, which is controlled using text_highlight_h_padding and text_highlight_v_padding. This can lead to overlapping highlights if foreground colors are placed on neighboring lines/columns, so consider setting those theme items to 0 if you want to avoid this.


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

Ajoute une balise [font] à la pile des balises. Redéfinit les polices par défaut pendant sa durée.

Passer 0 à font_size utilisera la taille de police par défaut existante.


void push_font_size(font_size: int) 🔗

Ajoute une balise [font_size] à la pile des balises. Redéfinit la taille de police par défaut pendant sa durée.


void push_hint(description: String) 🔗

Ajoute un marqueur [hint] à la pile des balises. Identique au BBCode [hint=something]{texte}[/hint].


void push_indent(level: int) 🔗

Ajoute une balise [indent] à la pile des balises. Multiple level par le tab_size actuel pour déterminer la nouvelle taille des marges.


void push_italics() 🔗

Ajouter une balise [font] avec une police en italique à la pile des balises. Identique à l'ajout d'une balise [i] si nous ne sommes pas dans une balise [b].


void push_language(language: String) 🔗

Ajoute un code de langage, utilisé pour l'algorithme de façonnage de texte et les fonctionnalités de police Open-Type.


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

Ajoute une balise [ol] ou [ul] à la pile des balises. Multiple level par le tab_size actuel pour déterminer la nouvelle taille des marges.


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

Ajoute une méta-balise à la pile de balises. Similaire au BBCode [url=qqch]{texte}[/url], mais prend en charge les types de métadonnées non-String.

Si meta_underlined vaut true, les méta-balises sont soulignées. Ce comportement peut être personnalisé avec underline_mode.

Note : Les méta-balises ne font rien par défaut lorsqu'elles sont cliquées. Pour attribuer le comportement lorsque cliquées, connectez meta_clicked à une fonction qui est appelée lorsque la méta-balise est cliquée.


void push_mono() 🔗

Ajoute une balise [font] avec une police monospace à la pile des balises.


void push_normal() 🔗

Ajoute une balise [font] avec une police normale à la pile des balises.


void push_outline_color(color: Color) 🔗

Ajouter une balise [outline_color] à la pile des balises. Ajoute un contour au texte pendant sa durée.


void push_outline_size(outline_size: int) 🔗

Ajoute une balise [outline_size] à la pile des balises. Redéfinit la taille du contour du texte pendant sa durée.


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

Ajoute une balise [p] à la pile des balises.


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

Adds a [s] tag to the tag stack. If color's alpha value is 0.0, the current font's color with its alpha multiplied by strikethrough_alpha is used.


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

Ajoute une balise [table=columns,inline_align] à la pile des balises. Utilisez set_table_column_expand() pour définir le rapport d'extension de la colonne. Utilisez push_cell() pour ajouter des cellules. name est utilisé comme nom du tableau pour les applications d'assistance.


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

Adds a [u] tag to the tag stack. If color's alpha value is 0.0, the current font's color with its alpha multiplied by underline_alpha is used.


void reload_effects() 🔗

Recharge les effets personnalisés. Utile lorsque custom_effects est modifié manuellement.


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

Retire un paragraphe de contenu de l'étiquette. Renvoie true si le paragraphe existe.

L'argument paragraph est l'index du paragraphe à supprimer, il peut prendre des valeurs dans l'intervalle [0, get_paragraph_count() - 1].

Si no_invalidate est défini à true, le cache des paragraphes suivants n'est pas invalidé. Utilisez-le pour des mises à jour plus rapides si le paragraphe supprimé est entièrement autonome (pas de balises non fermées), ou cet appel fait partie d'une opération de modification complexe et invalidate_paragraph() sera appelée à la fin de l'opération.


void scroll_to_line(line: int) 🔗

Fait défiler la ligne supérieure de la fenêtre pour correspondre à la ligne line.


void scroll_to_paragraph(paragraph: int) 🔗

Fait défiler la ligne supérieure de la fenêtre pour correspondre à la première ligne du paragraph.


void scroll_to_selection() 🔗

Défile vers le début de la sélection actuelle.


void select_all() 🔗

Sélectionne tout le texte.

Si selection_enabled vaut false, aucun sélection ne se fera.


void set_cell_border_color(color: Color) 🔗

Définit la couleur d'une bordure de cellule de tableau.


void set_cell_padding(padding: Rect2) 🔗

Définit le rembourrage intérieur d'une cellule de tableau.


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

Définit la couleur d'une cellule de tableau. Des couleurs distinctes pour des rangées alternées peuvent être spécifiées.


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

Définit la redéfinition de la taille minimale et maximale pour une cellule de tableau.


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

Modifie les options d'extension de la colonne sélectionnée. Si expand vaut true, la colonne s'étend proportionnellement à son rapport d'extension par rapport aux rapport des autres colonnes.

Par exemple, 2 colonnes avec des ratios 3 et 4 avec 70 pixels en largeur disponible augmenteraient respectivement 30 et 40 pixels.

Si expand vaut false, la colonne ne contribuera pas au rapport total.


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

Définit le nom d'une colonne de tableau pour les applications d'assistance.


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

Met à jour les images existantes avec la clé key. Seules les propriétés spécifiées par les bits de mask sont mises à jour. Voir add_image().


Descriptions des propriétés du thème

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

La couleur par défaut du texte.


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

La teinte par défaut de du contour du texte.


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

La couleur du texte sélectionné, utilisé quand selection_enabled vaut true. Si égale à Color(0, 0, 0, 0), elle sera ignorée.


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

La couleur de l'ombre de la police.


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

La couleur de la boîte de sélection.


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

La couleur par défaut de la bordure de cellule.


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

La couleur d'arrière-plan par défaut pour les lignes paires.


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

La couleur d'arrière-plan par défaut pour les lignes impaires.


int line_separation = 0 🔗

Espacement vertical supplémentaire entre les lignes (en pixels), l'espacement est ajouté à la descente de la ligne. Cette valeur peut être négative.


int outline_size = 0 🔗

La taille du contour du texte.

Note : Si vous utilisez une police avec FontFile.multichannel_signed_distance_field activé, sa propriété FontFile.msdf_pixel_range doit être définie à au moins deux fois la valeur de outline_size pour que le rendu des contours soit correct. Sinon, le contour peut sembler coupé plus tôt que prévu.


int paragraph_separation = 0 🔗

Espacement vertical supplémentaire entre des paragraphes (en pixels). L'espacement est ajouté après la dernière ligne. Cette valeur peut être négative.


int shadow_offset_x = 1 🔗

Le décalage horizontal pour l'ombre de la police.


int shadow_offset_y = 1 🔗

Le décalage vertical pour l'ombre de la police.


int shadow_outline_size = 1 🔗

La taille du contour d'ombre.


int strikethrough_alpha = 50 🔗

La transparence de la couleur de la biffure par défaut (en pourcentage). Pour les biffures avec une couleur personnalisée, cet élément de thème n'est utilisé que si l'alpha de la couleur personnalisée vaut 0.0 (complètement transparente).


int table_h_separation = 3 🔗

La séparation horizontale des éléments dans un tableau.


int table_v_separation = 3 🔗

La séparation verticale des éléments dans un tableau.


int text_highlight_h_padding = 3 🔗

Le rembourrage horizontal autour des boîtes dessinées par les balises [fgcolor] et [bgcolor]. Cela n'affecte pas l'apparence de la sélection de texte. Pour éviter tout risque de mises en valeur voisines qui se chevauchent, définissez ceci à 0 pour désactiver le rembourrage.


int text_highlight_v_padding = 3 🔗

Le rembourrage vertical autour des boîtes dessinées par les balises [fgcolor] et [bgcolor]. Cela n'affecte pas l'apparence de la sélection de texte. Pour éviter tout risque de mises en valeur voisines qui se chevauchent, définissez ceci à 0 pour désactiver le rembourrage.


int underline_alpha = 50 🔗

La transparence de couleur de soulignement par défaut (pourcentage). Pour les soulignements avec une couleur personnalisée, cet élément de thème n'est utilisé que si l'alpha de la couleur personnalisée vaut 0.0 (complètement transparente).


Font bold_font 🔗

La police utilisée pour le texte en gras.


Font bold_italics_font 🔗

La police utilisée pour les textes italiques gras.


Font italics_font 🔗

La police utilisée pour le texte en italique.


Font mono_font 🔗

La police utilisée pour le texte monospace.


Font normal_font 🔗

La police par défaut du texte.


int bold_font_size 🔗

La taille de police utilisée pour du texte en gras.


int bold_italics_font_size 🔗

La taille de police utilisée pour du texte en italique gras.


int italics_font_size 🔗

La taille de police utilisée pour du texte en italique.


int mono_font_size 🔗

La taille de police utilisée pour du texte monospace.


int normal_font_size 🔗

La taille de police du texte par défaut.


Texture2D horizontal_rule 🔗

La texture de la ligne horizontale.


StyleBox focus 🔗

L'arrière-plan utilisé lorsque le RichTextLabel a le focus. La StyleBox du focus est affichée sur la StyleBox de base, donc une StyleBox partiellement transparente devrait être utilisée pour s'assurer que la StyleBox de base reste visible. Une StyleBox qui représente un contour ou un sous-lignage fonctionne bien à cette fin. Pour désactiver l'effet visuel du focus, assignez une ressource StyleBoxEmpty. Notez que la désactivation de l'effet visuel du focus va nuire à l'utilisabilité de la navigation avec clavier/contrôleur, ce qui n'est donc pas recommandé pour des raisons d'accessibilité.


StyleBox normal 🔗

L'arrière-plan normal du RichTextLabel.