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
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
|
||
BitField[LineBreakFlag] |
|
|
|
||
clip_contents |
|
|
|
||
|
||
|
||
|
||
|
||
focus_mode |
|
|
|
||
|
||
BitField[JustificationFlag] |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
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 |
|
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) |
Propriétés du thème
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
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.
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.
Copie le texte sélectionné.
Sélectionne le texte RichTextLabel entier.
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 🔗
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()
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.
Si true, l'étiquette utilise le formatage BBCode.
Note : Cela n'affecte que le contenu de text, pas la pile des balises.
Si true, un clic droit affiche le menu contextuel.
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 🔗
Si true, le texte actuellement sélectionné sera désélectionné quand le focus sera perdu.
bool drag_and_drop_selection_enabled = true 🔗
Si true, permet le déposé-glissé du texte sélectionné.
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.
Si true, l'étiquette souligne les balises d'indice comme [hint=description]{texte}[/hint].
HorizontalAlignment horizontal_alignment = 0 🔗
void set_horizontal_alignment(value: HorizontalAlignment)
HorizontalAlignment get_horizontal_alignment()
Contrôle l'alignement horizontal du texte. Supporte à gauche, au centre, à droite, ou remplir (aussi connu comme justifié).
BitField[JustificationFlag] justification_flags = 163 🔗
void set_justification_flags(value: BitField[JustificationFlag])
BitField[JustificationFlag] get_justification_flags()
Règles d'alignement du remplissage des lignes.
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.
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 🔗
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é.
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 🔗
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 🔗
Si true, le label autorise la sélection du texte.
bool shortcut_keys_enabled = true 🔗
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 🔗
void set_structured_text_bidi_override(value: StructuredTextParser)
StructuredTextParser get_structured_text_bidi_override()
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.
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() 🔗
void set_tab_stops(value: PackedFloat32Array)
PackedFloat32Array get_tab_stops()
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.
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 🔗
void set_text_direction(value: TextDirection)
TextDirection get_text_direction()
Direction d'écriture du texte de base.
Si true, le traitement du texte est effectué dans un thread d'arrière-plan.
VerticalAlignment vertical_alignment = 0 🔗
void set_vertical_alignment(value: VerticalAlignment)
VerticalAlignment get_vertical_alignment()
Contrôle l'alignement vertical du texte. Supporte en haut, au centre, en bas et remplir.
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 🔗
void set_visible_characters_behavior(value: VisibleCharactersBehavior)
VisibleCharactersBehavior get_visible_characters_behavior()
Le comportement de coupure lorsque visible_characters ou visible_ratio est défini.
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.
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é.
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é.
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())
public override void _Ready()
{
var menu = GetMenu();
// Retirer l’élément "Sélectionner tout".
menu.RemoveItem(RichTextLabel.MenuItems.SelectAll);
// Ajouter des éléments personnalisés.
menu.AddSeparator();
menu.AddItem("Duplicate Text", RichTextLabel.MenuItems.Max + 1);
// Ajouter le gestionnaire d'élément.
menu.IdPressed += OnItemPressed;
}
public void OnItemPressed(int id)
{
if (id == TextEdit.MenuItems.Max + 1)
{
AddText("\n" + GetParsedText());
}
}
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
public partial class TestLabel : RichTextLabel
{
[Export]
public Panel PanneauArrierePlan { get; set; }
public override async void _Ready()
{
await ToSignal(this, Control.SignalName.Draw);
PanneauArrierePlan.Position = GetVisibleContentRect().Position;
PanneauArrierePlan.Size = GetVisibleContentRect().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.
Si threaded est activé, renvoie true si le thread d'arrière-plan a terminé le traitement du texte, sinon renvoie toujours true.
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).
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.
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.
Espacement vertical supplémentaire entre les lignes (en pixels), l'espacement est ajouté à la descente de la ligne. Cette valeur peut être négative.
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.
Le décalage horizontal pour l'ombre de la police.
Le décalage vertical pour l'ombre de la police.
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).
La séparation horizontale des éléments dans un tableau.
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.
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).
La police utilisée pour le texte en gras.
La police utilisée pour les textes italiques gras.
La police utilisée pour le texte en italique.
La police utilisée pour le texte monospace.
La police par défaut du texte.
La taille de police utilisée pour du texte en gras.
La taille de police utilisée pour du texte en italique gras.
La taille de police utilisée pour du texte en italique.
La taille de police utilisée pour du texte monospace.
La taille de police du texte par défaut.
La texture de la ligne horizontale.
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é.
L'arrière-plan normal du RichTextLabel.