pandemonium_engine_docs/classes/class_richtextlabel.rst

1066 lines
57 KiB
ReStructuredText

:github_url: hide
.. DO NOT EDIT THIS FILE!!!
.. Generated automatically from Godot engine sources.
.. Generator: https://github.com/godotengine/godot/tree/3.5/doc/tools/make_rst.py.
.. XML source: https://github.com/godotengine/godot/tree/3.5/doc/classes/RichTextLabel.xml.
.. _class_RichTextLabel:
RichTextLabel
=============
**Inherits:** :ref:`Control<class_Control>` **<** :ref:`CanvasItem<class_CanvasItem>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
Label that displays rich text.
Description
-----------
Rich text can contain custom text, fonts, images and some basic formatting. The label manages these as an internal tag stack. It also adapts itself to given width/heights.
\ **Note:** Assignments to :ref:`bbcode_text<class_RichTextLabel_property_bbcode_text>` clear the tag stack and reconstruct it from the property's contents. Any edits made to :ref:`bbcode_text<class_RichTextLabel_property_bbcode_text>` will erase previous edits made from other manual sources such as :ref:`append_bbcode<class_RichTextLabel_method_append_bbcode>` and the ``push_*`` / :ref:`pop<class_RichTextLabel_method_pop>` methods.
\ **Note:** RichTextLabel doesn't support entangled BBCode tags. For example, instead of using ``[b]bold[i]bold italic[/b]italic[/i]``, use ``[b]bold[i]bold italic[/i][/b][i]italic[/i]``.
\ **Note:** ``push_*/pop`` functions won't affect BBCode.
\ **Note:** Unlike :ref:`Label<class_Label>`, RichTextLabel doesn't have a *property* to horizontally align text to the center. Instead, enable :ref:`bbcode_enabled<class_RichTextLabel_property_bbcode_enabled>` and surround the text in a ``[center]`` tag as follows: ``[center]Example[/center]``. There is currently no built-in way to vertically align text either, but this can be emulated by relying on anchors/containers and the :ref:`fit_content_height<class_RichTextLabel_property_fit_content_height>` property.
\ **Note:** Unicode characters after ``0xffff`` (such as most emoji) are *not* supported on Windows. They will display as unknown characters instead. This will be resolved in Godot 4.0.
Tutorials
---------
- :doc:`BBCode in RichTextLabel <../tutorials/ui/bbcode_in_richtextlabel>`
- `GUI Rich Text/BBcode Demo <https://godotengine.org/asset-library/asset/132>`__
- `OS Test Demo <https://godotengine.org/asset-library/asset/677>`__
Properties
----------
+-----------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`bbcode_enabled<class_RichTextLabel_property_bbcode_enabled>` | ``false`` |
+-----------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`bbcode_text<class_RichTextLabel_property_bbcode_text>` | ``""`` |
+-----------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
| :ref:`Array<class_Array>` | :ref:`custom_effects<class_RichTextLabel_property_custom_effects>` | ``[ ]`` |
+-----------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`deselect_on_focus_loss_enabled<class_RichTextLabel_property_deselect_on_focus_loss_enabled>` | ``true`` |
+-----------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`fit_content_height<class_RichTextLabel_property_fit_content_height>` | ``false`` |
+-----------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`meta_underlined<class_RichTextLabel_property_meta_underlined>` | ``true`` |
+-----------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`override_selected_font_color<class_RichTextLabel_property_override_selected_font_color>` | ``false`` |
+-----------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
| :ref:`float<class_float>` | :ref:`percent_visible<class_RichTextLabel_property_percent_visible>` | ``1.0`` |
+-----------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | rect_clip_content | ``true`` (overrides :ref:`Control<class_Control_property_rect_clip_content>`) |
+-----------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`scroll_active<class_RichTextLabel_property_scroll_active>` | ``true`` |
+-----------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`scroll_following<class_RichTextLabel_property_scroll_following>` | ``false`` |
+-----------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`selection_enabled<class_RichTextLabel_property_selection_enabled>` | ``false`` |
+-----------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`tab_size<class_RichTextLabel_property_tab_size>` | ``4`` |
+-----------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`text<class_RichTextLabel_property_text>` | ``""`` |
+-----------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`visible_characters<class_RichTextLabel_property_visible_characters>` | ``-1`` |
+-----------------------------+----------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------+
Methods
-------
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`add_image<class_RichTextLabel_method_add_image>` **(** :ref:`Texture<class_Texture>` image, :ref:`int<class_int>` width=0, :ref:`int<class_int>` height=0, :ref:`InlineAlign<enum_RichTextLabel_InlineAlign>` align=2 **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`add_text<class_RichTextLabel_method_add_text>` **(** :ref:`String<class_String>` text **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`append_bbcode<class_RichTextLabel_method_append_bbcode>` **(** :ref:`String<class_String>` bbcode **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`clear<class_RichTextLabel_method_clear>` **(** **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`deselect<class_RichTextLabel_method_deselect>` **(** **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_content_height<class_RichTextLabel_method_get_content_height>` **(** **)** |const| |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_line_count<class_RichTextLabel_method_get_line_count>` **(** **)** |const| |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`String<class_String>` | :ref:`get_selected_text<class_RichTextLabel_method_get_selected_text>` **(** **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_total_character_count<class_RichTextLabel_method_get_total_character_count>` **(** **)** |const| |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`VScrollBar<class_VScrollBar>` | :ref:`get_v_scroll<class_RichTextLabel_method_get_v_scroll>` **(** **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_visible_line_count<class_RichTextLabel_method_get_visible_line_count>` **(** **)** |const| |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`install_effect<class_RichTextLabel_method_install_effect>` **(** :ref:`Variant<class_Variant>` effect **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`newline<class_RichTextLabel_method_newline>` **(** **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`parse_bbcode<class_RichTextLabel_method_parse_bbcode>` **(** :ref:`String<class_String>` bbcode **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Dictionary<class_Dictionary>` | :ref:`parse_expressions_for_values<class_RichTextLabel_method_parse_expressions_for_values>` **(** :ref:`PoolStringArray<class_PoolStringArray>` expressions **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`pop<class_RichTextLabel_method_pop>` **(** **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`push_align<class_RichTextLabel_method_push_align>` **(** :ref:`Align<enum_RichTextLabel_Align>` align **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`push_bold<class_RichTextLabel_method_push_bold>` **(** **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`push_bold_italics<class_RichTextLabel_method_push_bold_italics>` **(** **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`push_cell<class_RichTextLabel_method_push_cell>` **(** **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`push_color<class_RichTextLabel_method_push_color>` **(** :ref:`Color<class_Color>` color **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`push_font<class_RichTextLabel_method_push_font>` **(** :ref:`Font<class_Font>` font **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`push_indent<class_RichTextLabel_method_push_indent>` **(** :ref:`int<class_int>` level **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`push_italics<class_RichTextLabel_method_push_italics>` **(** **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`push_list<class_RichTextLabel_method_push_list>` **(** :ref:`ListType<enum_RichTextLabel_ListType>` type **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`push_meta<class_RichTextLabel_method_push_meta>` **(** :ref:`Variant<class_Variant>` data **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`push_mono<class_RichTextLabel_method_push_mono>` **(** **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`push_normal<class_RichTextLabel_method_push_normal>` **(** **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`push_strikethrough<class_RichTextLabel_method_push_strikethrough>` **(** **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`push_table<class_RichTextLabel_method_push_table>` **(** :ref:`int<class_int>` columns **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`push_underline<class_RichTextLabel_method_push_underline>` **(** **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`remove_line<class_RichTextLabel_method_remove_line>` **(** :ref:`int<class_int>` line **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`scroll_to_line<class_RichTextLabel_method_scroll_to_line>` **(** :ref:`int<class_int>` line **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`set_table_column_expand<class_RichTextLabel_method_set_table_column_expand>` **(** :ref:`int<class_int>` column, :ref:`bool<class_bool>` expand, :ref:`int<class_int>` ratio **)** |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Theme Properties
----------------
+---------------------------------+---------------------------------------------------------------------------------+----------------------------------+
| :ref:`Color<class_Color>` | :ref:`default_color<class_RichTextLabel_theme_color_default_color>` | ``Color( 1, 1, 1, 1 )`` |
+---------------------------------+---------------------------------------------------------------------------------+----------------------------------+
| :ref:`Color<class_Color>` | :ref:`font_color_selected<class_RichTextLabel_theme_color_font_color_selected>` | ``Color( 0.49, 0.49, 0.49, 1 )`` |
+---------------------------------+---------------------------------------------------------------------------------+----------------------------------+
| :ref:`Color<class_Color>` | :ref:`font_color_shadow<class_RichTextLabel_theme_color_font_color_shadow>` | ``Color( 0, 0, 0, 0 )`` |
+---------------------------------+---------------------------------------------------------------------------------+----------------------------------+
| :ref:`Color<class_Color>` | :ref:`selection_color<class_RichTextLabel_theme_color_selection_color>` | ``Color( 0.1, 0.1, 1, 0.8 )`` |
+---------------------------------+---------------------------------------------------------------------------------+----------------------------------+
| :ref:`int<class_int>` | :ref:`line_separation<class_RichTextLabel_theme_constant_line_separation>` | ``1`` |
+---------------------------------+---------------------------------------------------------------------------------+----------------------------------+
| :ref:`int<class_int>` | :ref:`shadow_as_outline<class_RichTextLabel_theme_constant_shadow_as_outline>` | ``0`` |
+---------------------------------+---------------------------------------------------------------------------------+----------------------------------+
| :ref:`int<class_int>` | :ref:`shadow_offset_x<class_RichTextLabel_theme_constant_shadow_offset_x>` | ``1`` |
+---------------------------------+---------------------------------------------------------------------------------+----------------------------------+
| :ref:`int<class_int>` | :ref:`shadow_offset_y<class_RichTextLabel_theme_constant_shadow_offset_y>` | ``1`` |
+---------------------------------+---------------------------------------------------------------------------------+----------------------------------+
| :ref:`int<class_int>` | :ref:`table_hseparation<class_RichTextLabel_theme_constant_table_hseparation>` | ``3`` |
+---------------------------------+---------------------------------------------------------------------------------+----------------------------------+
| :ref:`int<class_int>` | :ref:`table_vseparation<class_RichTextLabel_theme_constant_table_vseparation>` | ``3`` |
+---------------------------------+---------------------------------------------------------------------------------+----------------------------------+
| :ref:`Font<class_Font>` | :ref:`bold_font<class_RichTextLabel_theme_font_bold_font>` | |
+---------------------------------+---------------------------------------------------------------------------------+----------------------------------+
| :ref:`Font<class_Font>` | :ref:`bold_italics_font<class_RichTextLabel_theme_font_bold_italics_font>` | |
+---------------------------------+---------------------------------------------------------------------------------+----------------------------------+
| :ref:`Font<class_Font>` | :ref:`italics_font<class_RichTextLabel_theme_font_italics_font>` | |
+---------------------------------+---------------------------------------------------------------------------------+----------------------------------+
| :ref:`Font<class_Font>` | :ref:`mono_font<class_RichTextLabel_theme_font_mono_font>` | |
+---------------------------------+---------------------------------------------------------------------------------+----------------------------------+
| :ref:`Font<class_Font>` | :ref:`normal_font<class_RichTextLabel_theme_font_normal_font>` | |
+---------------------------------+---------------------------------------------------------------------------------+----------------------------------+
| :ref:`StyleBox<class_StyleBox>` | :ref:`focus<class_RichTextLabel_theme_style_focus>` | |
+---------------------------------+---------------------------------------------------------------------------------+----------------------------------+
| :ref:`StyleBox<class_StyleBox>` | :ref:`normal<class_RichTextLabel_theme_style_normal>` | |
+---------------------------------+---------------------------------------------------------------------------------+----------------------------------+
Signals
-------
.. _class_RichTextLabel_signal_meta_clicked:
- **meta_clicked** **(** :ref:`Variant<class_Variant>` meta **)**
Triggered when the user clicks on content between meta tags. If the meta is defined in text, e.g. ``[url={"data"="hi"}]hi[/url]``, then the parameter for this signal will be a :ref:`String<class_String>` type. If a particular type or an object is desired, the :ref:`push_meta<class_RichTextLabel_method_push_meta>` method must be used to manually insert the data into the tag stack.
----
.. _class_RichTextLabel_signal_meta_hover_ended:
- **meta_hover_ended** **(** :ref:`Variant<class_Variant>` meta **)**
Triggers when the mouse exits a meta tag.
----
.. _class_RichTextLabel_signal_meta_hover_started:
- **meta_hover_started** **(** :ref:`Variant<class_Variant>` meta **)**
Triggers when the mouse enters a meta tag.
Enumerations
------------
.. _enum_RichTextLabel_Align:
.. _class_RichTextLabel_constant_ALIGN_LEFT:
.. _class_RichTextLabel_constant_ALIGN_CENTER:
.. _class_RichTextLabel_constant_ALIGN_RIGHT:
.. _class_RichTextLabel_constant_ALIGN_FILL:
enum **Align**:
- **ALIGN_LEFT** = **0** --- Makes text left aligned.
- **ALIGN_CENTER** = **1** --- Makes text centered.
- **ALIGN_RIGHT** = **2** --- Makes text right aligned.
- **ALIGN_FILL** = **3** --- Makes text fill width.
----
.. _enum_RichTextLabel_InlineAlign:
.. _class_RichTextLabel_constant_INLINE_ALIGN_TOP:
.. _class_RichTextLabel_constant_INLINE_ALIGN_CENTER:
.. _class_RichTextLabel_constant_INLINE_ALIGN_BASELINE:
.. _class_RichTextLabel_constant_INLINE_ALIGN_BOTTOM:
enum **InlineAlign**:
- **INLINE_ALIGN_TOP** = **0** --- Aligns top of the inline image to the top of the text.
- **INLINE_ALIGN_CENTER** = **1** --- Aligns center of the inline image to the center of the text.
- **INLINE_ALIGN_BASELINE** = **2** --- Aligns bottom of the inline image to the baseline of the text.
- **INLINE_ALIGN_BOTTOM** = **3** --- Aligns bottom of the inline image to the bottom of the text.
----
.. _enum_RichTextLabel_ListType:
.. _class_RichTextLabel_constant_LIST_NUMBERS:
.. _class_RichTextLabel_constant_LIST_LETTERS:
.. _class_RichTextLabel_constant_LIST_DOTS:
enum **ListType**:
- **LIST_NUMBERS** = **0** --- Each list item has a number marker.
- **LIST_LETTERS** = **1** --- Each list item has a letter marker.
- **LIST_DOTS** = **2** --- Each list item has a filled circle marker.
----
.. _enum_RichTextLabel_ItemType:
.. _class_RichTextLabel_constant_ITEM_FRAME:
.. _class_RichTextLabel_constant_ITEM_TEXT:
.. _class_RichTextLabel_constant_ITEM_IMAGE:
.. _class_RichTextLabel_constant_ITEM_NEWLINE:
.. _class_RichTextLabel_constant_ITEM_FONT:
.. _class_RichTextLabel_constant_ITEM_COLOR:
.. _class_RichTextLabel_constant_ITEM_UNDERLINE:
.. _class_RichTextLabel_constant_ITEM_STRIKETHROUGH:
.. _class_RichTextLabel_constant_ITEM_ALIGN:
.. _class_RichTextLabel_constant_ITEM_INDENT:
.. _class_RichTextLabel_constant_ITEM_LIST:
.. _class_RichTextLabel_constant_ITEM_TABLE:
.. _class_RichTextLabel_constant_ITEM_FADE:
.. _class_RichTextLabel_constant_ITEM_SHAKE:
.. _class_RichTextLabel_constant_ITEM_WAVE:
.. _class_RichTextLabel_constant_ITEM_TORNADO:
.. _class_RichTextLabel_constant_ITEM_RAINBOW:
.. _class_RichTextLabel_constant_ITEM_CUSTOMFX:
.. _class_RichTextLabel_constant_ITEM_META:
enum **ItemType**:
- **ITEM_FRAME** = **0**
- **ITEM_TEXT** = **1**
- **ITEM_IMAGE** = **2**
- **ITEM_NEWLINE** = **3**
- **ITEM_FONT** = **4**
- **ITEM_COLOR** = **5**
- **ITEM_UNDERLINE** = **6**
- **ITEM_STRIKETHROUGH** = **7**
- **ITEM_ALIGN** = **8**
- **ITEM_INDENT** = **9**
- **ITEM_LIST** = **10**
- **ITEM_TABLE** = **11**
- **ITEM_FADE** = **12**
- **ITEM_SHAKE** = **13**
- **ITEM_WAVE** = **14**
- **ITEM_TORNADO** = **15**
- **ITEM_RAINBOW** = **16**
- **ITEM_CUSTOMFX** = **18**
- **ITEM_META** = **17**
Property Descriptions
---------------------
.. _class_RichTextLabel_property_bbcode_enabled:
- :ref:`bool<class_bool>` **bbcode_enabled**
+-----------+-----------------------+
| *Default* | ``false`` |
+-----------+-----------------------+
| *Setter* | set_use_bbcode(value) |
+-----------+-----------------------+
| *Getter* | is_using_bbcode() |
+-----------+-----------------------+
If ``true``, the label uses BBCode formatting.
\ **Note:** Trying to alter the ``RichTextLabel``'s text with :ref:`add_text<class_RichTextLabel_method_add_text>` will reset this to ``false``. Use instead :ref:`append_bbcode<class_RichTextLabel_method_append_bbcode>` to preserve BBCode formatting.
----
.. _class_RichTextLabel_property_bbcode_text:
- :ref:`String<class_String>` **bbcode_text**
+-----------+-------------------+
| *Default* | ``""`` |
+-----------+-------------------+
| *Setter* | set_bbcode(value) |
+-----------+-------------------+
| *Getter* | get_bbcode() |
+-----------+-------------------+
The label's text in BBCode format. Is not representative of manual modifications to the internal tag stack. Erases changes made by other methods when edited.
\ **Note:** It is unadvised to use the ``+=`` operator with ``bbcode_text`` (e.g. ``bbcode_text += "some string"``) as it replaces the whole text and can cause slowdowns. It will also erase all BBCode that was added to stack using ``push_*`` methods. Use :ref:`append_bbcode<class_RichTextLabel_method_append_bbcode>` for adding text instead, unless you absolutely need to close a tag that was opened in an earlier method call.
----
.. _class_RichTextLabel_property_custom_effects:
- :ref:`Array<class_Array>` **custom_effects**
+-----------+--------------------+
| *Default* | ``[ ]`` |
+-----------+--------------------+
| *Setter* | set_effects(value) |
+-----------+--------------------+
| *Getter* | get_effects() |
+-----------+--------------------+
The currently installed custom effects. This is an array of :ref:`RichTextEffect<class_RichTextEffect>`\ s.
To add a custom effect, it's more convenient to use :ref:`install_effect<class_RichTextLabel_method_install_effect>`.
----
.. _class_RichTextLabel_property_deselect_on_focus_loss_enabled:
- :ref:`bool<class_bool>` **deselect_on_focus_loss_enabled**
+-----------+-------------------------------------------+
| *Default* | ``true`` |
+-----------+-------------------------------------------+
| *Setter* | set_deselect_on_focus_loss_enabled(value) |
+-----------+-------------------------------------------+
| *Getter* | is_deselect_on_focus_loss_enabled() |
+-----------+-------------------------------------------+
If ``true``, the selected text will be deselected when focus is lost.
----
.. _class_RichTextLabel_property_fit_content_height:
- :ref:`bool<class_bool>` **fit_content_height**
+-----------+---------------------------------+
| *Default* | ``false`` |
+-----------+---------------------------------+
| *Setter* | set_fit_content_height(value) |
+-----------+---------------------------------+
| *Getter* | is_fit_content_height_enabled() |
+-----------+---------------------------------+
If ``true``, the label's height will be automatically updated to fit its content.
\ **Note:** This property is used as a workaround to fix issues with ``RichTextLabel`` in :ref:`Container<class_Container>`\ s, but it's unreliable in some cases and will be removed in future versions.
----
.. _class_RichTextLabel_property_meta_underlined:
- :ref:`bool<class_bool>` **meta_underlined**
+-----------+---------------------------+
| *Default* | ``true`` |
+-----------+---------------------------+
| *Setter* | set_meta_underline(value) |
+-----------+---------------------------+
| *Getter* | is_meta_underlined() |
+-----------+---------------------------+
If ``true``, the label underlines meta tags such as ``[url]{text}[/url]``.
----
.. _class_RichTextLabel_property_override_selected_font_color:
- :ref:`bool<class_bool>` **override_selected_font_color**
+-----------+-----------------------------------------+
| *Default* | ``false`` |
+-----------+-----------------------------------------+
| *Setter* | set_override_selected_font_color(value) |
+-----------+-----------------------------------------+
| *Getter* | is_overriding_selected_font_color() |
+-----------+-----------------------------------------+
If ``true``, the label uses the custom font color.
----
.. _class_RichTextLabel_property_percent_visible:
- :ref:`float<class_float>` **percent_visible**
+-----------+----------------------------+
| *Default* | ``1.0`` |
+-----------+----------------------------+
| *Setter* | set_percent_visible(value) |
+-----------+----------------------------+
| *Getter* | get_percent_visible() |
+-----------+----------------------------+
The range of characters to display, as a :ref:`float<class_float>` between 0.0 and 1.0. When assigned an out of range value, it's the same as assigning 1.0.
\ **Note:** Setting this property updates :ref:`visible_characters<class_RichTextLabel_property_visible_characters>` based on current :ref:`get_total_character_count<class_RichTextLabel_method_get_total_character_count>`.
----
.. _class_RichTextLabel_property_scroll_active:
- :ref:`bool<class_bool>` **scroll_active**
+-----------+--------------------------+
| *Default* | ``true`` |
+-----------+--------------------------+
| *Setter* | set_scroll_active(value) |
+-----------+--------------------------+
| *Getter* | is_scroll_active() |
+-----------+--------------------------+
If ``true``, the scrollbar is visible. Setting this to ``false`` does not block scrolling completely. See :ref:`scroll_to_line<class_RichTextLabel_method_scroll_to_line>`.
----
.. _class_RichTextLabel_property_scroll_following:
- :ref:`bool<class_bool>` **scroll_following**
+-----------+--------------------------+
| *Default* | ``false`` |
+-----------+--------------------------+
| *Setter* | set_scroll_follow(value) |
+-----------+--------------------------+
| *Getter* | is_scroll_following() |
+-----------+--------------------------+
If ``true``, the window scrolls down to display new content automatically.
----
.. _class_RichTextLabel_property_selection_enabled:
- :ref:`bool<class_bool>` **selection_enabled**
+-----------+------------------------------+
| *Default* | ``false`` |
+-----------+------------------------------+
| *Setter* | set_selection_enabled(value) |
+-----------+------------------------------+
| *Getter* | is_selection_enabled() |
+-----------+------------------------------+
If ``true``, the label allows text selection.
----
.. _class_RichTextLabel_property_tab_size:
- :ref:`int<class_int>` **tab_size**
+-----------+---------------------+
| *Default* | ``4`` |
+-----------+---------------------+
| *Setter* | set_tab_size(value) |
+-----------+---------------------+
| *Getter* | get_tab_size() |
+-----------+---------------------+
The number of spaces associated with a single tab length. Does not affect ``\t`` in text tags, only indent tags.
----
.. _class_RichTextLabel_property_text:
- :ref:`String<class_String>` **text**
+-----------+-----------------+
| *Default* | ``""`` |
+-----------+-----------------+
| *Setter* | set_text(value) |
+-----------+-----------------+
| *Getter* | get_text() |
+-----------+-----------------+
The raw text of the label.
When set, clears the tag stack and adds a raw text tag to the top of it. Does not parse BBCodes. Does not modify :ref:`bbcode_text<class_RichTextLabel_property_bbcode_text>`.
----
.. _class_RichTextLabel_property_visible_characters:
- :ref:`int<class_int>` **visible_characters**
+-----------+-------------------------------+
| *Default* | ``-1`` |
+-----------+-------------------------------+
| *Setter* | set_visible_characters(value) |
+-----------+-------------------------------+
| *Getter* | get_visible_characters() |
+-----------+-------------------------------+
The restricted number of characters to display in the label. If ``-1``, all characters will be displayed.
\ **Note:** Setting this property updates :ref:`percent_visible<class_RichTextLabel_property_percent_visible>` based on current :ref:`get_total_character_count<class_RichTextLabel_method_get_total_character_count>`.
Method Descriptions
-------------------
.. _class_RichTextLabel_method_add_image:
- void **add_image** **(** :ref:`Texture<class_Texture>` image, :ref:`int<class_int>` width=0, :ref:`int<class_int>` height=0, :ref:`InlineAlign<enum_RichTextLabel_InlineAlign>` align=2 **)**
Adds an image's opening and closing tags to the tag stack, optionally providing a ``width`` and ``height`` to resize the image.
If ``width`` or ``height`` is set to 0, the image size will be adjusted in order to keep the original aspect ratio.
----
.. _class_RichTextLabel_method_add_text:
- void **add_text** **(** :ref:`String<class_String>` text **)**
Adds raw non-BBCode-parsed text to the tag stack.
----
.. _class_RichTextLabel_method_append_bbcode:
- :ref:`Error<enum_@GlobalScope_Error>` **append_bbcode** **(** :ref:`String<class_String>` bbcode **)**
Parses ``bbcode`` and adds tags to the tag stack as needed.
\ **Note:** Using this method, you can't close a tag that was opened in a previous :ref:`append_bbcode<class_RichTextLabel_method_append_bbcode>` call. This is done to improve performance, especially when updating large RichTextLabels since rebuilding the whole BBCode every time would be slower. If you absolutely need to close a tag in a future method call, append the :ref:`bbcode_text<class_RichTextLabel_property_bbcode_text>` instead of using :ref:`append_bbcode<class_RichTextLabel_method_append_bbcode>`.
\ **Note:** This method internals' can't possibly fail, but an error code is returned for backwards compatibility, which will always be :ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>`.
----
.. _class_RichTextLabel_method_clear:
- void **clear** **(** **)**
Clears the tag stack and sets :ref:`bbcode_text<class_RichTextLabel_property_bbcode_text>` to an empty string.
----
.. _class_RichTextLabel_method_deselect:
- void **deselect** **(** **)**
Clears the current selection.
----
.. _class_RichTextLabel_method_get_content_height:
- :ref:`int<class_int>` **get_content_height** **(** **)** |const|
Returns the height of the content.
----
.. _class_RichTextLabel_method_get_line_count:
- :ref:`int<class_int>` **get_line_count** **(** **)** |const|
Returns the total number of newlines in the tag stack's text tags. Considers wrapped text as one line.
----
.. _class_RichTextLabel_method_get_selected_text:
- :ref:`String<class_String>` **get_selected_text** **(** **)**
Returns the current selection text. Does not include BBCodes.
----
.. _class_RichTextLabel_method_get_total_character_count:
- :ref:`int<class_int>` **get_total_character_count** **(** **)** |const|
Returns the total number of characters from text tags. Does not include BBCodes.
----
.. _class_RichTextLabel_method_get_v_scroll:
- :ref:`VScrollBar<class_VScrollBar>` **get_v_scroll** **(** **)**
Returns the vertical scrollbar.
\ **Warning:** This is a required internal node, removing and freeing it may cause a crash. If you wish to hide it or any of its children, use their :ref:`CanvasItem.visible<class_CanvasItem_property_visible>` property.
----
.. _class_RichTextLabel_method_get_visible_line_count:
- :ref:`int<class_int>` **get_visible_line_count** **(** **)** |const|
Returns the number of visible lines.
----
.. _class_RichTextLabel_method_install_effect:
- void **install_effect** **(** :ref:`Variant<class_Variant>` effect **)**
Installs a custom effect. ``effect`` should be a valid :ref:`RichTextEffect<class_RichTextEffect>`.
----
.. _class_RichTextLabel_method_newline:
- void **newline** **(** **)**
Adds a newline tag to the tag stack.
----
.. _class_RichTextLabel_method_parse_bbcode:
- :ref:`Error<enum_@GlobalScope_Error>` **parse_bbcode** **(** :ref:`String<class_String>` bbcode **)**
The assignment version of :ref:`append_bbcode<class_RichTextLabel_method_append_bbcode>`. Clears the tag stack and inserts the new content.
\ **Note:** This method internals' can't possibly fail, but an error code is returned for backwards compatibility, which will always be :ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>`.
----
.. _class_RichTextLabel_method_parse_expressions_for_values:
- :ref:`Dictionary<class_Dictionary>` **parse_expressions_for_values** **(** :ref:`PoolStringArray<class_PoolStringArray>` expressions **)**
Parses BBCode parameter ``expressions`` into a dictionary.
----
.. _class_RichTextLabel_method_pop:
- void **pop** **(** **)**
Terminates the current tag. Use after ``push_*`` methods to close BBCodes manually. Does not need to follow ``add_*`` methods.
----
.. _class_RichTextLabel_method_push_align:
- void **push_align** **(** :ref:`Align<enum_RichTextLabel_Align>` align **)**
Adds an ``[align]`` tag based on the given ``align`` value. See :ref:`Align<enum_RichTextLabel_Align>` for possible values.
----
.. _class_RichTextLabel_method_push_bold:
- void **push_bold** **(** **)**
Adds a ``[font]`` tag with a bold font to the tag stack. This is the same as adding a ``[b]`` tag if not currently in a ``[i]`` tag.
----
.. _class_RichTextLabel_method_push_bold_italics:
- void **push_bold_italics** **(** **)**
Adds a ``[font]`` tag with a bold italics font to the tag stack.
----
.. _class_RichTextLabel_method_push_cell:
- void **push_cell** **(** **)**
Adds a ``[cell]`` tag to the tag stack. Must be inside a ``[table]`` tag. See :ref:`push_table<class_RichTextLabel_method_push_table>` for details.
----
.. _class_RichTextLabel_method_push_color:
- void **push_color** **(** :ref:`Color<class_Color>` color **)**
Adds a ``[color]`` tag to the tag stack.
----
.. _class_RichTextLabel_method_push_font:
- void **push_font** **(** :ref:`Font<class_Font>` font **)**
Adds a ``[font]`` tag to the tag stack. Overrides default fonts for its duration.
----
.. _class_RichTextLabel_method_push_indent:
- void **push_indent** **(** :ref:`int<class_int>` level **)**
Adds an ``[indent]`` tag to the tag stack. Multiplies ``level`` by current :ref:`tab_size<class_RichTextLabel_property_tab_size>` to determine new margin length.
----
.. _class_RichTextLabel_method_push_italics:
- void **push_italics** **(** **)**
Adds a ``[font]`` tag with a italics font to the tag stack. This is the same as adding a ``[i]`` tag if not currently in a ``[b]`` tag.
----
.. _class_RichTextLabel_method_push_list:
- void **push_list** **(** :ref:`ListType<enum_RichTextLabel_ListType>` type **)**
Adds a ``[list]`` tag to the tag stack. Similar to the BBCodes ``[ol]`` or ``[ul]``, but supports more list types. Not fully implemented!
----
.. _class_RichTextLabel_method_push_meta:
- void **push_meta** **(** :ref:`Variant<class_Variant>` data **)**
Adds a ``[meta]`` tag to the tag stack. Similar to the BBCode ``[url=something]{text}[/url]``, but supports non-:ref:`String<class_String>` metadata types.
----
.. _class_RichTextLabel_method_push_mono:
- void **push_mono** **(** **)**
Adds a ``[font]`` tag with a monospace font to the tag stack.
----
.. _class_RichTextLabel_method_push_normal:
- void **push_normal** **(** **)**
Adds a ``[font]`` tag with a normal font to the tag stack.
----
.. _class_RichTextLabel_method_push_strikethrough:
- void **push_strikethrough** **(** **)**
Adds a ``[s]`` tag to the tag stack.
----
.. _class_RichTextLabel_method_push_table:
- void **push_table** **(** :ref:`int<class_int>` columns **)**
Adds a ``[table=columns]`` tag to the tag stack.
----
.. _class_RichTextLabel_method_push_underline:
- void **push_underline** **(** **)**
Adds a ``[u]`` tag to the tag stack.
----
.. _class_RichTextLabel_method_remove_line:
- :ref:`bool<class_bool>` **remove_line** **(** :ref:`int<class_int>` line **)**
Removes a line of content from the label. Returns ``true`` if the line exists.
The ``line`` argument is the index of the line to remove, it can take values in the interval ``[0, get_line_count() - 1]``.
----
.. _class_RichTextLabel_method_scroll_to_line:
- void **scroll_to_line** **(** :ref:`int<class_int>` line **)**
Scrolls the window's top line to match ``line``.
----
.. _class_RichTextLabel_method_set_table_column_expand:
- void **set_table_column_expand** **(** :ref:`int<class_int>` column, :ref:`bool<class_bool>` expand, :ref:`int<class_int>` ratio **)**
Edits the selected column's expansion options. If ``expand`` is ``true``, the column expands in proportion to its expansion ratio versus the other columns' ratios.
For example, 2 columns with ratios 3 and 4 plus 70 pixels in available width would expand 30 and 40 pixels, respectively.
If ``expand`` is ``false``, the column will not contribute to the total ratio.
Theme Property Descriptions
---------------------------
.. _class_RichTextLabel_theme_color_default_color:
- :ref:`Color<class_Color>` **default_color**
+-----------+-------------------------+
| *Default* | ``Color( 1, 1, 1, 1 )`` |
+-----------+-------------------------+
The default text color.
----
.. _class_RichTextLabel_theme_color_font_color_selected:
- :ref:`Color<class_Color>` **font_color_selected**
+-----------+----------------------------------+
| *Default* | ``Color( 0.49, 0.49, 0.49, 1 )`` |
+-----------+----------------------------------+
The color of selected text, used when :ref:`selection_enabled<class_RichTextLabel_property_selection_enabled>` is ``true``.
----
.. _class_RichTextLabel_theme_color_font_color_shadow:
- :ref:`Color<class_Color>` **font_color_shadow**
+-----------+-------------------------+
| *Default* | ``Color( 0, 0, 0, 0 )`` |
+-----------+-------------------------+
The color of the font's shadow.
----
.. _class_RichTextLabel_theme_color_selection_color:
- :ref:`Color<class_Color>` **selection_color**
+-----------+-------------------------------+
| *Default* | ``Color( 0.1, 0.1, 1, 0.8 )`` |
+-----------+-------------------------------+
The color of the selection box.
----
.. _class_RichTextLabel_theme_constant_line_separation:
- :ref:`int<class_int>` **line_separation**
+-----------+-------+
| *Default* | ``1`` |
+-----------+-------+
The vertical space between lines.
----
.. _class_RichTextLabel_theme_constant_shadow_as_outline:
- :ref:`int<class_int>` **shadow_as_outline**
+-----------+-------+
| *Default* | ``0`` |
+-----------+-------+
Boolean value. If 1 (``true``), the shadow will be displayed around the whole text as an outline.
----
.. _class_RichTextLabel_theme_constant_shadow_offset_x:
- :ref:`int<class_int>` **shadow_offset_x**
+-----------+-------+
| *Default* | ``1`` |
+-----------+-------+
The horizontal offset of the font's shadow.
----
.. _class_RichTextLabel_theme_constant_shadow_offset_y:
- :ref:`int<class_int>` **shadow_offset_y**
+-----------+-------+
| *Default* | ``1`` |
+-----------+-------+
The vertical offset of the font's shadow.
----
.. _class_RichTextLabel_theme_constant_table_hseparation:
- :ref:`int<class_int>` **table_hseparation**
+-----------+-------+
| *Default* | ``3`` |
+-----------+-------+
The horizontal separation of elements in a table.
----
.. _class_RichTextLabel_theme_constant_table_vseparation:
- :ref:`int<class_int>` **table_vseparation**
+-----------+-------+
| *Default* | ``3`` |
+-----------+-------+
The vertical separation of elements in a table.
----
.. _class_RichTextLabel_theme_font_bold_font:
- :ref:`Font<class_Font>` **bold_font**
The font used for bold text.
----
.. _class_RichTextLabel_theme_font_bold_italics_font:
- :ref:`Font<class_Font>` **bold_italics_font**
The font used for bold italics text.
----
.. _class_RichTextLabel_theme_font_italics_font:
- :ref:`Font<class_Font>` **italics_font**
The font used for italics text.
----
.. _class_RichTextLabel_theme_font_mono_font:
- :ref:`Font<class_Font>` **mono_font**
The font used for monospace text.
----
.. _class_RichTextLabel_theme_font_normal_font:
- :ref:`Font<class_Font>` **normal_font**
The default text font.
----
.. _class_RichTextLabel_theme_style_focus:
- :ref:`StyleBox<class_StyleBox>` **focus**
The background used when the ``RichTextLabel`` is focused.
----
.. _class_RichTextLabel_theme_style_normal:
- :ref:`StyleBox<class_StyleBox>` **normal**
The normal background for the ``RichTextLabel``.
.. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
.. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
.. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`