RichTextLabel

Успадковує: Control < CanvasItem < Node < Object

Контроль для відображення тексту, який може містити різні стилі шрифтів, зображення та базове форматування.

Опис

Елемент керування для відображення тексту, який може містити власні шрифти, зображення та базове форматування. RichTextLabel керує ними як внутрішнім стеком тегів. Він також адаптується до заданої ширини/висоти.

Примітка: Теги newline(), push_paragraph(), "\n", "\r\n", p та теги вирівнювання починають новий абзац. Кожен абзац обробляється незалежно, у власному контексті BiDi. Якщо ви хочете примусово переносити рядки в межах абзацу, можна використовувати будь-який інший символ розриву рядка, наприклад, Перехід на наступний рядок (U+000C), Наступний рядок (U+0085), Роздільник рядків (U+2028).

Примітка: Призначення text очищають стек тегів та реконструюють його з вмісту властивості. Будь-які редагування, внесені до text, видалять попередні редагування, внесені з інших ручних джерел, таких як append_text() та методи push_* / pop().

Примітка: RichTextLabel не підтримує заплутані теги BBCode. Наприклад, замість використання [b]bold[i]bold italic[/b]italic[/i] використовуйте [b]bold[i]bold italic[/i][/b][i]italic[/i].

Примітка: Функції push_*/pop_* не впливатимуть на BBCode.

Примітка: Коли параметр bbcode_enabled увімкнено, теги вирівнювання, такі як [center], матимуть пріоритет над параметром horizontal_alignment, який визначає вирівнювання тексту за замовчуванням.

Посібники

Властивості

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

Методи

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: int = 0, height: int = 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_in_percent: bool = false, height_in_percent: bool = false, 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: int = 0, height: int = 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_in_percent: bool = false, height_in_percent: bool = false)

Властивості теми

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


Сигнали

finished() 🔗

Запускається, коли документ повністю завантажено.

Примітка. Це може статися до того, як текст буде оброблено для малювання. Значення прокручування можуть бути недійсними, доки документ не буде намальовано вперше після цього сигналу.


meta_clicked(meta: Variant) 🔗

Активується, коли користувач натискає вміст між мета-тегами (URL). Якщо мета визначено в BBCode, напр. [url={"key": "value"}]Текст[/url], тоді параметр для цього сигналу завжди матиме тип String. Якщо потрібен певний тип або об’єкт, потрібно використовувати метод push_meta(), щоб вручну вставити дані в стек тегів. Крім того, ви можете перетворити вхідні дані String у потрібний тип на основі його вмісту (наприклад, виклик JSON.parse() для нього).

Наприклад, такий метод можна підключити до meta_clicked, щоб відкривати URL-адреси, за якими клацнув користувач, за допомогою веб-переглядача за замовчуванням:

# Це припускає, що сигнал `meta_clicked` RichTextLabel був підключений до
# функція нижче за допомогою діалогового вікна підключення сигналу.
func _richtextlabel_on_meta_clicked(meta):
    # `meta` має тип Variant, тому перетворіть його на String, щоб уникнути помилок сценарію під час виконання.
    OS.shell_open(str(meta))

meta_hover_ended(meta: Variant) 🔗

Тригери, коли миша виходить мета тег.


meta_hover_started(meta: Variant) 🔗

Тригери, коли миша надходить на тег мета.


Переліки

enum ListType: 🔗

ListType LIST_NUMBERS = 0

Кожен пункт списку має номер маркера.

ListType LIST_LETTERS = 1

Кожен пункт списку має літератор.

ListType LIST_ROMAN = 2

Кожен список має римський знак.

ListType LIST_DOTS = 3

Кожен пункт списку має заповнений знак кола.


enum MenuItems: 🔗

MenuItems MENU_COPY = 0

Скопіює вибраний текст.

MenuItems MENU_SELECT_ALL = 1

Виберіть текст RichTextLabel.

MenuItems MENU_MAX = 2

Представляємо розмір MenuItems enum.


enum MetaUnderline: 🔗

MetaUnderline META_UNDERLINE_NEVER = 0

Метатеги не відображають лінію, навіть якщо meta_underlined true.

MetaUnderline META_UNDERLINE_ALWAYS = 1

true, мета тег завжди відображати підкреслений.

MetaUnderline META_UNDERLINE_ON_HOVER = 2

true, мета тег дисплей підкреслення, коли курсор мишки над ним.


flags ImageUpdateMask: 🔗

ImageUpdateMask UPDATE_TEXTURE = 1

Якщо цей біт встановлено, update_image() змінює текстуру зображення.

ImageUpdateMask UPDATE_SIZE = 2

Якщо цей біт встановлено, update_image() змінює розмір зображення.

ImageUpdateMask UPDATE_COLOR = 4

Якщо цей біт встановлено, update_image() змінює колір зображення.

ImageUpdateMask UPDATE_ALIGNMENT = 8

Якщо цей біт встановлено, update_image() змінює вирівнювання зображення по рядку.

ImageUpdateMask UPDATE_REGION = 16

Якщо цей біт встановлено, update_image() змінює область текстури зображення.

ImageUpdateMask UPDATE_PAD = 32

Якщо цей біт встановлено, update_image() змінює відступи зображення.

ImageUpdateMask UPDATE_TOOLTIP = 64

Якщо цей біт встановлено, update_image() змінює підказку зображення.

ImageUpdateMask UPDATE_WIDTH_IN_PERCENT = 128

Якщо цей біт встановлено, update_image() змінює ширину зображення з/на відсотки.


Описи властивостей

AutowrapMode autowrap_mode = 3 🔗

Якщо встановлено щось інше, ніж TextServer.AUTOWRAP_OFF, текст буде загорнуто всередину обмежувального прямокутника вузла.


BitField[LineBreakFlag] autowrap_trim_flags = 192 🔗

Прапорці обрізання пробілів при автоматичному перенесенні. Див. TextServer.BREAK_TRIM_START_EDGE_SPACES та TextServer.BREAK_TRIM_END_EDGE_SPACES для отримання додаткової інформації.


bool bbcode_enabled = false 🔗

  • void set_use_bbcode(value: bool)

  • bool is_using_bbcode()

Якщо true, мітка використовує форматування BBCode.

Примітка: Це тільки впливає на вміст text, а не тек-стека.


bool context_menu_enabled = false 🔗

  • void set_context_menu_enabled(value: bool)

  • bool is_context_menu_enabled()

Якщо true, клацніть правою кнопкою миші відображає контекстне меню.


Array custom_effects = [] 🔗

  • void set_effects(value: Array)

  • Array get_effects()

В даний час встановлено користувацькі ефекти. Це масив RichTextEffects.

Щоб додати користувацький ефект, зручніше використовувати 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()

Якщо true, вибраний текст буде вилучено, коли фокус втрачено.


bool drag_and_drop_selection_enabled = true 🔗

  • void set_drag_and_drop_selection_enabled(value: bool)

  • bool is_drag_and_drop_selection_enabled()

Якщо true, дайте перетягування вибраного тексту.


bool fit_content = false 🔗

  • void set_fit_content(value: bool)

  • bool is_fit_content_enabled()

Якщо true, мінімальний розмір етикетки буде автоматично оновлено, щоб відповідати своєму вмісту, що відповідає поведінки Label.


bool hint_underlined = true 🔗

  • void set_hint_underline(value: bool)

  • bool is_hint_underlined()

Якщо true, мітка підкреслює теги підказок, такі як [hint=description]{text}[/hint].


HorizontalAlignment horizontal_alignment = 0 🔗

Керує горизонтальним вирівнюванням тексту. Підтримує вирівнювання по лівому краю, по центру, правому краю та заповнення або вирівнювання по ширині.


BitField[JustificationFlag] justification_flags = 163 🔗

Правила вирівнювання заповнення рядків.


String language = "" 🔗

Код мови, який використовується для розриву рядків і алгоритмів формування тексту, якщо залишити пустим, замість нього використовується поточна мова.


bool meta_underlined = true 🔗

  • void set_meta_underline(value: bool)

  • bool is_meta_underlined()

Якщо true, позначки етикеток, такі як код пропустити-linturl{text}/url[/code]. Ці теги можуть викликати функцію при натисканні, якщо [signal meta_clicked] підключено до функції.


int progress_bar_delay = 1000 🔗

  • void set_progress_bar_delay(value: int)

  • int get_progress_bar_delay()

Затримка після того, як буде відображено план навантаження, в мілісекундах. Встановити до -1, щоб повністю відключити бар прогресу.

Примітка: Прогрес бар відображається тільки в тому випадку, якщо ввімкнено threaded.


bool scroll_active = true 🔗

  • void set_scroll_active(value: bool)

  • bool is_scroll_active()

Якщо true, прокрутка видно. Налаштування цього до false не блокує прокручування повністю. Див. scroll_to_line().


bool scroll_following = false 🔗

  • void set_scroll_follow(value: bool)

  • bool is_scroll_following()

Якщо true, віконні прокрутки вниз для відображення нового вмісту автоматично.


bool scroll_following_visible_characters = false 🔗

  • void set_scroll_follow_visible_characters(value: bool)

  • bool is_scroll_following_visible_characters()

Якщо значення true, вікно прокручується, щоб відобразити останній видимий рядок, коли змінюється visible_characters або visible_ratio.


bool selection_enabled = false 🔗

  • void set_selection_enabled(value: bool)

  • bool is_selection_enabled()

Якщо true, етикетка дозволяє вибрати текст.


bool shortcut_keys_enabled = true 🔗

  • void set_shortcut_keys_enabled(value: bool)

  • bool is_shortcut_keys_enabled()

Якщо true, увімкнено комбінації клавіш для контекстного меню, навіть якщо контекстне меню вимкнено.


StructuredTextParser structured_text_bidi_override = 0 🔗

Настроювання алгоритму BiDi для структурованого тексту.


Array structured_text_bidi_override_options = [] 🔗

  • void set_structured_text_bidi_override_options(value: Array)

  • Array get_structured_text_bidi_override_options()

Налаштуйте додаткові параметри для перенади BiDi.


int tab_size = 4 🔗

  • void set_tab_size(value: int)

  • int get_tab_size()

Кількість місць, пов'язаних з однією довжиною вкладки. Не впливає \t в текстових тегах, тільки відступні теги.


PackedFloat32Array tab_stops = PackedFloat32Array() 🔗

Вирівнює текст на задану вкладку.

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

Текст етикетки у форматі BBCode. Не є представником ручних модифікацій до внутрішнього тек-стека. Зміни, внесені іншими методами при редагуванні.

Note: Якщо пам'ятний bbcode_enabled є true, не рекомендується використовувати `` +=`` оператор з пам'ятний текст (наприклад, text += " some string"), оскільки він замінює весь текст і може викликати уповільнення. Цей веб-сайт використовує файли push_*. Використовуйте append_text() для додавання тексту замість цього, якщо ви абсолютно повинні закрити тег, який був відкритий в більш ранньому методі виклику.


TextDirection text_direction = 0 🔗

Основний напрямок написання тексту.


bool threaded = false 🔗

  • void set_threaded(value: bool)

  • bool is_threaded()

Якщо true, обробка тексту здійснюється на фоновій нитки.


VerticalAlignment vertical_alignment = 0 🔗

Керує вертикальним вирівнюванням тексту. Підтримує вирівнювання по верху, по центру, знизу та заливку.


int visible_characters = -1 🔗

  • void set_visible_characters(value: int)

  • int get_visible_characters()

Кількість символів для відображення. Якщо встановлено значення -1, відображаються всі символи. Це може бути корисно під час анімації тексту, що з'являється у діалоговому вікні.

Примітка: Встановлення цього параметра відповідно оновлює visible_ratio.

Примітка: Символи підраховуються як кодові точки Unicode. Один видимий графема може містити кілька кодових точок (наприклад, деякі емодзі використовують три кодові точки). Одна кодова точка може містити два символи UTF-16, які використовуються в рядках C#.


VisibleCharactersBehavior visible_characters_behavior = 0 🔗

Поведінка відсікання, коли встановлено visible_characters або visible_ratio.


float visible_ratio = 1.0 🔗

  • void set_visible_ratio(value: float)

  • float get_visible_ratio()

Факт символів для відображення, відносно загальної кількості символів (див. get_total_character_count()). Якщо встановити на 1.0, всі символи відображаються. Якщо встановити до 0.5, буде показано лише половину символів. Це може бути корисно, коли анімація тексту з'являється в діалоговому вікні.

Примітка: Встановлення оновлень цього майна visible_characters відповідно.


Описи методів

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

Додає горизонтальну лінію, яку можна використовувати для розділення контенту.

Якщо встановлено width_in_percent, значення width – це відсотки від ширини елемента керування, а не пікселі.

Якщо встановлено height_in_percent, значення height – це відсотки від ширини елемента керування, а не пікселі.


void add_image(image: Texture2D, width: int = 0, height: int = 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_in_percent: bool = false, height_in_percent: bool = false, alt_text: String = "") 🔗

Додає відкриваючий та закриваючий теги зображення до стеку тегів, за бажанням надаючи width та height для зміни розміру зображення, color для відтінку зображення та region для використання лише частин зображення.

Якщо width або height встановлено на 0, розмір зображення буде скориговано, щоб зберегти початкове співвідношення сторін.

Якщо width та height не встановлено, але region встановлено, буде використано прямокутник області.

key – це необов'язковий ідентифікатор, який можна використовувати для зміни зображення за допомогою методу update_image.

Якщо встановлено pad, а зображення менше за розмір, заданий width та height, додано відступ зображення, щоб відповідати розміру, замість масштабування.

Якщо встановлено width_in_percent, значення width – це відсотки від ширини елемента керування, а не пікселі.

Якщо встановлено параметр height_in_percent, значення height – це відсотки від ширини елемента керування, а не пікселі.

Параметр alt_text використовується як опис зображення для допоміжних програм.


void add_text(text: String) 🔗

Додає сирий непарований текст до мітки.


void append_text(bbcode: String) 🔗

Парсеси bbcode і додає теги до мітки, як це потрібно.

Примітка: Використовуючи цей метод, ви не можете закрити тег, який був відкритий в попередній append_text() виклик. Це зроблено для поліпшення продуктивності, особливо при оновленні великих RichTextLabels, оскільки перебудувати весь Бі-Біоде кожен раз буде повільніше. Якщо ви абсолютно повинні закрити тег в майбутньому методі виклику, додайте text замість використання append_text().


void clear() 🔗

Очищає мітку, викликаючи етикетку, щоб відобразити нічого.

Примітка: Цей метод не впливає на text, і його вміст буде показувати знову, якщо етикетка переокремлюється. Тим не менш, налаштування пам'ятний текст на порожній String також очищає стек.


void deselect() 🔗

Очищає поточний вибір.


int get_character_line(character: int) 🔗

Повертає номер рядка наданої позиції символу. Номери рядків і символів мають нульовий індекс.

Примітка. Якщо threaded увімкнено, цей метод повертає значення для завантаженої частини документа. Використовуйте is_finished() або finished, щоб визначити, чи повністю завантажено документ.


int get_character_paragraph(character: int) 🔗

Повертає номер абзацу наданої позиції символу. Номери абзаців і символів мають нульовий індекс.

Примітка. Якщо threaded увімкнено, цей метод повертає значення для завантаженої частини документа. Використовуйте is_finished() або finished, щоб визначити, чи повністю завантажено документ.


int get_content_height() const 🔗

Повертає висоту вмісту.

Примітка: Цей метод завжди повертає повний розмір вмісту і не залежить від visible_ratio та visible_characters. Щоб отримати розмір видимого вмісту, використовуйте get_visible_content_rect().

Примітка: Якщо увімкнено threaded, цей метод повертає значення для завантаженої частини документа. Використовуйте is_finished() або finished, щоб визначити, чи документ повністю завантажено.


int get_content_width() const 🔗

Повертає ширину вмісту.

Примітка: Цей метод завжди повертає повний розмір вмісту і не залежить від visible_ratio та visible_characters. Щоб отримати розмір видимого вмісту, використовуйте get_visible_content_rect().

Примітка: Якщо увімкнено threaded, цей метод повертає значення для завантаженої частини документа. Використовуйте is_finished() або finished, щоб визначити, чи документ повністю завантажено.


int get_line_count() const 🔗

Повертає загальну кількість рядків у тексті. Перенесений текст вважається кількома рядками.

Примітка: Якщо ввімкнено threaded, цей метод повертає значення для завантаженої частини документа. Використовуйте is_finished() або finished, щоб визначити, чи документ повністю завантажено.


int get_line_height(line: int) const 🔗

Повертає висоту рядка, знайденого за наданим індексом.

Примітка: Якщо ввімкнено threaded, цей метод повертає значення для завантаженої частини документа. Використовуйте is_finished() або finished, щоб визначити, чи документ повністю завантажено.


float get_line_offset(line: int) 🔗

Повертає вертикальне зміщення лінії, знайденої за наданим індексом.

Примітка. Якщо threaded увімкнено, цей метод повертає значення для завантаженої частини документа. Використовуйте is_finished() або finished, щоб визначити, чи повністю завантажено документ.


Vector2i get_line_range(line: int) 🔗

Повертає індекси першого й останнього видимих символів для заданого рядка параметрів у вигляді Vector2i.

Примітка. Якщо visible_characters_behavior встановлено на TextServer.VC_CHARS_BEFORE_SHAPING, зараховуються лише видимі обернуті рядки.

Примітка. Якщо threaded увімкнено, цей метод повертає значення для завантаженої частини документа. Використовуйте is_finished() або finished, щоб визначити, чи повністю завантажено документ.


int get_line_width(line: int) const 🔗

Повертає ширину лінії, знайденої за вказаним індексом.

Примітка: Якщо ввімкнено threaded, цей метод повертає значення для завантаженої частини документа. Використовуйте is_finished() або finished, щоб визначити, чи документ повністю завантажено.


PopupMenu get_menu() const 🔗

Повертає PopupMenu цього RichTextLabel. За замовчуванням це меню відображається, якщо клацнути правою кнопкою миші RichTextLabel.

Ви можете додати власні пункти меню або видалити стандартні. Переконайтеся, що ваші ідентифікатори не конфліктують зі стандартними (див. MenuItems). Наприклад:

func _ready():
    var menu = get_menu()
    # Видалити пункт «Вибрати все».
    menu.remove_item(MENU_SELECT_ALL)
    # Додайте спеціальні елементи.
    menu.add_separator()
    menu.add_item("Duplicate Text", MENU_MAX + 1)
    # Підключити зворотній дзвінок.
    menu.id_pressed.connect(_on_item_pressed)

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

Попередження: Це обов’язковий внутрішній вузол, його видалення та звільнення може призвести до збою. Якщо ви бажаєте приховати його чи будь-який із його дочірніх елементів, скористайтеся властивістю Window.visible.


int get_paragraph_count() const 🔗

Повертає загальну кількість абзаців (новини або p міток у текстових тегах мітки міток). Розглянуто текст як один пункт.


float get_paragraph_offset(paragraph: int) 🔗

Повертає вертикальне зміщення абзацу за вказаним індексом.

Примітка. Якщо threaded увімкнено, цей метод повертає значення для завантаженої частини документа. Використовуйте is_finished() або finished, щоб визначити, чи повністю завантажено документ.


String get_parsed_text() const 🔗

Повертаємо текст без розмітки BBCode.


String get_selected_text() const 🔗

Повертає поточний вибраний текст. Не включає BBCode.


int get_selection_from() const 🔗

Повертає індекс першого символу поточного виділення, якщо виділення активне, -1 інакше. Не включає BBCode.


float get_selection_line_offset() const 🔗

Повертає поточне зміщення вертикальної лінії виділення, якщо виділення активне, -1.0 інакше.


int get_selection_to() const 🔗

Повертає індекс останнього символу поточного виділення, якщо виділення активне, -1 інакше. Не включає BBCode.


int get_total_character_count() const 🔗

Повертає загальну кількість символів з текстових тегів. Не включає BBCode.


VScrollBar get_v_scroll_bar() 🔗

Повертає вертикальну прокрутку.

Попередження: Це необхідний внутрішній вузол, видаляючи і звільняючи його може призвести до аварії. Якщо ви хочете приховати його або будь-який з своїх дітей, скористайтеся їх CanvasItem.pic.


Rect2i get_visible_content_rect() const 🔗

Повертає прямокутник, що обмежує видимий вміст.

Примітка: Цей метод повертає правильне значення лише після того, як намальовано мітку.

extends RichTextLabel

@export var background_panel: Panel

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

int get_visible_line_count() const 🔗

Повертає кількість видимих рядків.

Примітка: Цей метод повертає правильне значення лише після того, як намальовано мітку.

Примітка: Якщо ввімкнено threaded, цей метод повертає значення для завантаженої частини документа. Використовуйте is_finished() або finished, щоб визначити, чи документ повністю завантажено.


int get_visible_paragraph_count() const 🔗

Повертає кількість видимих абзаців. Абзац вважається видимим, якщо видно хоча б один з його рядків.

Примітка: Цей метод повертає правильне значення лише після того, як намальовано мітку.

Примітка: Якщо ввімкнено threaded, цей метод повертає значення для завантаженої частини документа. Використовуйте is_finished() або finished, щоб визначити, чи документ повністю завантажено.


void install_effect(effect: Variant) 🔗

Встановлює спеціальний ефект. Це також можна зробити в інспекторі за допомогою властивості custom_effects. effect має бути дійсним RichTextEffect.

Приклад: З таким сценарієм, що походить від RichTextEffect:

# ефект.gd
class_name MyCustomEffect
extends RichTextEffect

var bbcode = "my_custom_effect"

# ...

Наведений вище ефект можна встановити в RichTextLabel зі сценарію:

# rich_text_label.gd
extends RichTextLabel

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

    # Альтернативно, якщо не використовується `class_name` у сценарії, який розширює RichTextEffect:
    install_effect(preload("res://effect.gd").new())

bool invalidate_paragraph(paragraph: int) 🔗

Робить недійсним кеш paragraph та всіх наступних абзаців.


bool is_finished() const 🔗

Якщо threaded включена, повертає true, якщо фонова нитка завершила обробку тексту, інакше завжди повертає true.


bool is_menu_visible() const 🔗

Повертаємо вашу увагу на те, що меню видно. Використовуйте це замість ``get_menu().видимі `` для поліпшення продуктивності (наприклад, створення меню уникнути).


bool is_ready() const 🔗

Застаріло: Use is_finished() instead.

Якщо threaded включена, повертає true, якщо фонова нитка завершила обробку тексту, інакше завжди повертає true.


void menu_option(option: int) 🔗

Виконує задану дію, як визначену в MenuItems enum.


void newline() 🔗

Додати новий тег в мітку.


void parse_bbcode(bbcode: String) 🔗

Версія присвоєння append_text(). Очищає стек тегів та вставляє новий вміст.


Dictionary parse_expressions_for_values(expressions: PackedStringArray) 🔗

Розбирає параметр BBCode expressions у словник.


void pop() 🔗

Призначає поточний тег. Використовуйте після push_* методи для закривання Бібродів вручну. Не потрібно дотримуватися add_* методи.


void pop_all() 🔗

Визначені всі теги, відкриті методами push_*.


void pop_context() 🔗

Після останнього виклику (в тому числі контекстного маркера), або всіх тегів, якщо не існує контекстного маркера на стек.


void push_bgcolor(bgcolor: Color) 🔗

Додає тег [bgcolor] до стеку тегів.

Примітка: Колір фону має відступи за замовчуванням, які контролюються за допомогою text_highlight_h_padding та text_highlight_v_padding. Це може призвести до перекриття підсвічувань, якщо кольори фону розміщені на сусідніх рядках/стовпцях, тому подумайте про встановлення для цих елементів теми значення 0, якщо ви хочете цього уникнути.


void push_bold() 🔗

Додає тег код пропустити-lintfont`` з сміливим шрифтом до мітки. Це те ж, що додавання [code skip-lint][b]`` тег, якщо не в даний час в коді пропустити-lint*[/code] тег.


void push_bold_italics() 🔗

Додає [font] тег з сміливим шрифтом italics до мітки.


void push_cell() 🔗

Додає тег [cell] до стеку тегів. Має бути всередині тегу [table]. Див. push_table() для отримання детальної інформації. Використовуйте set_table_column_expand() для встановлення коефіцієнта розширення стовпця, set_cell_border_color() для встановлення межі комірки, set_cell_row_background_color() для встановлення фону комірки, set_cell_size_override() для зміни розміру комірки та set_cell_padding() для встановлення відступів.


void push_color(color: Color) 🔗

Додає тег [color] до стеку тегів.


void push_context() 🔗

Додає маркер контексту до стеку тегів. Див. pop_context().


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

Додає мітку користувацького ефекту до мітки. Ефект не потрібно бути в custom_effects. Природа безпосередньо пропускається до ефекту.


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

Додає тег [dropcap] до стеку тегів. Буквиця (опущена велика літера) — це декоративний елемент на початку абзацу, який більший за решту тексту.


void push_fgcolor(fgcolor: Color) 🔗

Додає тег [fgcolor] до стеку тегів.

Примітка: Колір переднього плану має відступи за замовчуванням, які контролюються за допомогою text_highlight_h_padding та text_highlight_v_padding. Це може призвести до перекриття відблисків, якщо кольори переднього плану розміщені на сусідніх рядках/стовпцях, тому подумайте про встановлення для цих елементів теми значення 0, якщо ви хочете цього уникнути.


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

Додає тег [font] до стеку тегів. Перезаписує шрифти за замовчуванням на час його дії.

Передавання 0 до font_size використовуватиме існуючий розмір шрифту за замовчуванням.


void push_font_size(font_size: int) 🔗

Додає тег [font_size] до стеку тегів. Замінює розмір шрифту за замовчуванням на час його дії.


void push_hint(description: String) 🔗

Додає тег [hint] до стеку тегів. Те саме, що BBCode [hint=something]{text}[/hint].


void push_indent(level: int) 🔗

Додає тег [indent] до стеку тегів. Множить level на поточний tab_size для визначення нової довжини поля.


void push_italics() 🔗

Додає тег [font] з курсивним шрифтом до стеку тегів. Це те саме, що додавання тегу [i], якщо він ще не в тезі [b].


void push_language(language: String) 🔗

Додавання мовного коду, що використовується для алгоритму формування тексту та функцій шрифтів Open-Type.


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

Додає тег [ol] або [ul] до стеку тегів. Множить level на поточний tab_size для визначення нової довжини поля.


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

Додає мета тегу до мітки. Подібно до BBCode [url=something]{text}[/url], але підтримує неString типи метаданих.

true, мета-теги відображають лінію. Ця поведінка можна налаштувати за допомогою underline_mode.

Note: Метатеги роблять нічого за замовчуванням при натисканні. Щоб призначити поведінку при натисканні, з'єднайте meta_clicked до функції, яка називається, коли мета тег натискається.


void push_mono() 🔗

Додає тег [font] з моноширинним шрифтом до стеку тегів.


void push_normal() 🔗

Додає тег [font] зі звичайним шрифтом до стеку тегів.


void push_outline_color(color: Color) 🔗

Додає тег [outline_color] до стеку тегів. Додає контур тексту на його тривалість.


void push_outline_size(outline_size: int) 🔗

Додає тег [outline_size] до стеку тегів. Замінює розмір контуру тексту за замовчуванням на час його дії.


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

Додає тег [p] до стеку тегів.


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

Додає тег [s] до стеку тегів. Якщо значення альфа-каналу color дорівнює нулю, використовується поточний колір шрифту з альфа-каналом, помноженим на zastrikethrough_alpha.


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

Додає тег [table=columns,inline_align] до стеку тегів. Використовуйте метод set_table_column_expand() для встановлення коефіцієнта розширення стовпців. Використовуйте метод push_cell для додавання комірок. name використовується як назва таблиці для допоміжних програм.


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

Додає тег [u] до стеку тегів. Якщо значення альфа-коду color дорівнює нулю, використовується поточний колір шрифту з альфа-кодом, помноженим на underline_alpha.


void reload_effects() 🔗

Перезавантажує власні ефекти. Корисно, коли custom_effects змінюється вручну.


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

Видаляє абзац вмісту з мітки. Повертає true, якщо абзац існує.

Аргумент paragraph – це індекс абзацу, який потрібно видалити, він може приймати значення в інтервалі [0, get_paragraph_count() - 1].

Якщо no_invalidate встановлено на true, кеш для наступних абзаців не анулюється. Використовуйте його для швидшого оновлення, якщо видалений абзац повністю автономний (не має незакритих тегів), або цей виклик є частиною складної операції редагування, і invalidate_paragraph() буде викликано в кінці операції.


void scroll_to_line(line: int) 🔗

Прокрутки верхнього рядка вікна до матчу line.


void scroll_to_paragraph(paragraph: int) 🔗

Прокрутки верхнього рядка вікна, щоб відповідати першим рядком paragraph.


void scroll_to_selection() 🔗

Прокрутки до початку поточного вибору.


void select_all() 🔗

Виберіть текст.

false, не відбудеться вибір.


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

Редагує параметри розширення вибраного стовпця. Якщо expand є true, стовпчик розширюється пропорційно співвідношенню його розширення.

Наприклад, 2 стовпчики з співвідношеннями 3 і 4 плюс 70 пікселів у доступній ширини розширять 30 і 40 пікселів, відповідно.

Якщо expand is false, стовпчик не сприятиме загальному співвідношенню.


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

Встановлює назву стовпця таблиці для допоміжних програм.


void update_image(key: Variant, mask: BitField[ImageUpdateMask], image: Texture2D, width: int = 0, height: int = 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_in_percent: bool = false, height_in_percent: bool = false) 🔗

Оновлює наявні зображення з ключем key. оновлюються тільки властивості, вказані Mask біти. Подивитися add_image().


Описи тематичної нерухомості

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

Колір вибраного тексту, який використовується, коли selection_enabled має значення true. Якщо дорівнює 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 🔗

Розмір контуру тексту.

Примітка. Якщо використовується шрифт із увімкненим FontFile.multichannel_signed_distance_field, для його FontFile.msdf_pixel_range має бути принаймні вдвічі значення outline_size щоб рендеринг контуру виглядав правильно. Інакше контур може здатися обрізаним раніше, ніж передбачалося.


int paragraph_separation = 0 🔗

Додатковий вертикальний інтервал між абзацами (у пікселях). Інтервал додається після останнього рядка. Це значення може бути від’ємним.


int shadow_offset_x = 1 🔗

Горизонтальний зсув тіні шрифту.


int shadow_offset_y = 1 🔗

Вертикальний зсув тіні шрифту.


int shadow_outline_size = 1 🔗

Розмір контуру тіні.


int strikethrough_alpha = 50 🔗

Прозорість кольору закреслення за замовчуванням (у відсотках). Для закреслень із власним кольором цей елемент теми використовується лише за умови, що альфа-канал власного кольору дорівнює 0.0 (повністю прозорий).


int table_h_separation = 3 🔗

Горизонтальне поділ елементів в таблиці.


int table_v_separation = 3 🔗

Вертикальне відділення елементів в таблиці.


int text_highlight_h_padding = 3 🔗

Горизонтальні відступи навколо рамок, намальовані тегами [fgcolor] та [bgcolor]. Це не впливає на вигляд виділення тексту. Щоб уникнути ризику перекриття сусідніх виділень, встановіть для цього значення 0, щоб вимкнути відступи.


int text_highlight_v_padding = 3 🔗

Вертикальні відступи навколо рамок, намальованих тегами [fgcolor] та [bgcolor]. Це не впливає на вигляд виділення тексту. Щоб уникнути ризику перекриття сусідніх виділень, встановіть для цього значення 0, щоб вимкнути відступи.


int underline_alpha = 50 🔗

Прозорість кольору підкреслення за замовчуванням (у відсотках). Для підкреслень з власним кольором цей елемент теми використовується лише тоді, коли альфа власного кольору дорівнює 0.0 (повністю прозорий).


Font bold_font 🔗

Використовується для сміливого тексту.


Font bold_italics_font 🔗

Шрифт, що використовується для текстів ізоляцій.


Font italics_font 🔗

Шрифт, який використовується для тексту italics.


Font mono_font 🔗

Шрифт, що використовується для монокосмічного тексту.


Font normal_font 🔗

Текст за замовчуванням.


int bold_font_size 🔗

Розмір шрифту, що використовується для сміливого тексту.


int bold_italics_font_size 🔗

Розмір шрифту, що використовується для сміливих italics тексту.


int italics_font_size 🔗

Розмір шрифту, що використовується для тексту italics.


int mono_font_size 🔗

Розмір шрифту, що використовується для монокосмічного тексту.


int normal_font_size 🔗

Розмір шрифту за замовчуванням.


Texture2D horizontal_rule 🔗

Текстура горизонтальної лінійки.


StyleBox focus 🔗

На фоні, що використовується при фокусі RichTextLabel. фокус StyleBox відображається over бази StyleBox, так що частково прозора StyleBox повинна бути використана для забезпечення бази StyleBox. Стильбокс, який добре працює для цього. Щоб вимкнути візуальний ефект фокусу, призначте ресурс StyleBoxEmpty. Зверніть увагу, що відключення візуального ефекту фокусу буде завдати шкоди клавіатурі / керованій навігації, тому це не рекомендується для причин доступності.


StyleBox normal 🔗

Нормальний фон для RichTextLabel.