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, який визначає вирівнювання тексту за замовчуванням.
Посібники
Властивості
|
||
BitField[LineBreakFlag] |
|
|
|
||
clip_contents |
|
|
|
||
|
||
|
||
|
||
|
||
focus_mode |
|
|
|
||
|
||
BitField[JustificationFlag] |
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Методи
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 |
|
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: 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) |
Властивості теми
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Сигнали
finished() 🔗
Запускається, коли документ повністю завантажено.
Примітка. Це може статися до того, як текст буде оброблено для малювання. Значення прокручування можуть бути недійсними, доки документ не буде намальовано вперше після цього сигналу.
Активується, коли користувач натискає вміст між мета-тегами (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
Кожен пункт списку має заповнений знак кола.
Скопіює вибраний текст.
Виберіть текст RichTextLabel.
Представляємо розмір 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 🔗
void set_autowrap_mode(value: AutowrapMode)
AutowrapMode get_autowrap_mode()
Якщо встановлено щось інше, ніж TextServer.AUTOWRAP_OFF, текст буде загорнуто всередину обмежувального прямокутника вузла.
BitField[LineBreakFlag] autowrap_trim_flags = 192 🔗
void set_autowrap_trim_flags(value: BitField[LineBreakFlag])
BitField[LineBreakFlag] get_autowrap_trim_flags()
Прапорці обрізання пробілів при автоматичному перенесенні. Див. TextServer.BREAK_TRIM_START_EDGE_SPACES та TextServer.BREAK_TRIM_END_EDGE_SPACES для отримання додаткової інформації.
Якщо true, мітка використовує форматування BBCode.
Примітка: Це тільки впливає на вміст text, а не тек-стека.
Якщо true, клацніть правою кнопкою миші відображає контекстне меню.
В даний час встановлено користувацькі ефекти. Це масив RichTextEffects.
Щоб додати користувацький ефект, зручніше використовувати install_effect().
bool deselect_on_focus_loss_enabled = true 🔗
Якщо true, вибраний текст буде вилучено, коли фокус втрачено.
bool drag_and_drop_selection_enabled = true 🔗
Якщо true, дайте перетягування вибраного тексту.
Якщо true, мінімальний розмір етикетки буде автоматично оновлено, щоб відповідати своєму вмісту, що відповідає поведінки Label.
Якщо true, мітка підкреслює теги підказок, такі як [hint=description]{text}[/hint].
HorizontalAlignment horizontal_alignment = 0 🔗
void set_horizontal_alignment(value: HorizontalAlignment)
HorizontalAlignment get_horizontal_alignment()
Керує горизонтальним вирівнюванням тексту. Підтримує вирівнювання по лівому краю, по центру, правому краю та заповнення або вирівнювання по ширині.
BitField[JustificationFlag] justification_flags = 163 🔗
void set_justification_flags(value: BitField[JustificationFlag])
BitField[JustificationFlag] get_justification_flags()
Правила вирівнювання заповнення рядків.
Код мови, який використовується для розриву рядків і алгоритмів формування тексту, якщо залишити пустим, замість нього використовується поточна мова.
Якщо true, позначки етикеток, такі як код пропустити-linturl{text}/url[/code]. Ці теги можуть викликати функцію при натисканні, якщо [signal meta_clicked] підключено до функції.
int progress_bar_delay = 1000 🔗
Затримка після того, як буде відображено план навантаження, в мілісекундах. Встановити до -1, щоб повністю відключити бар прогресу.
Примітка: Прогрес бар відображається тільки в тому випадку, якщо ввімкнено threaded.
Якщо true, прокрутка видно. Налаштування цього до false не блокує прокручування повністю. Див. scroll_to_line().
bool scroll_following = false 🔗
Якщо 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 🔗
Якщо true, етикетка дозволяє вибрати текст.
bool shortcut_keys_enabled = true 🔗
Якщо true, увімкнено комбінації клавіш для контекстного меню, навіть якщо контекстне меню вимкнено.
StructuredTextParser structured_text_bidi_override = 0 🔗
void set_structured_text_bidi_override(value: StructuredTextParser)
StructuredTextParser get_structured_text_bidi_override()
Настроювання алгоритму BiDi для структурованого тексту.
Array structured_text_bidi_override_options = [] 🔗
void set_structured_text_bidi_override_options(value: Array)
Array get_structured_text_bidi_override_options()
Налаштуйте додаткові параметри для перенади BiDi.
Кількість місць, пов'язаних з однією довжиною вкладки. Не впливає \t в текстових тегах, тільки відступні теги.
PackedFloat32Array tab_stops = PackedFloat32Array() 🔗
void set_tab_stops(value: PackedFloat32Array)
PackedFloat32Array get_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.
Текст етикетки у форматі BBCode. Не є представником ручних модифікацій до внутрішнього тек-стека. Зміни, внесені іншими методами при редагуванні.
Note: Якщо пам'ятний bbcode_enabled є true, не рекомендується використовувати `` +=`` оператор з пам'ятний текст (наприклад, text += " some string"), оскільки він замінює весь текст і може викликати уповільнення. Цей веб-сайт використовує файли push_*. Використовуйте append_text() для додавання тексту замість цього, якщо ви абсолютно повинні закрити тег, який був відкритий в більш ранньому методі виклику.
TextDirection text_direction = 0 🔗
void set_text_direction(value: TextDirection)
TextDirection get_text_direction()
Основний напрямок написання тексту.
Якщо true, обробка тексту здійснюється на фоновій нитки.
VerticalAlignment vertical_alignment = 0 🔗
void set_vertical_alignment(value: VerticalAlignment)
VerticalAlignment get_vertical_alignment()
Керує вертикальним вирівнюванням тексту. Підтримує вирівнювання по верху, по центру, знизу та заливку.
Кількість символів для відображення. Якщо встановлено значення -1, відображаються всі символи. Це може бути корисно під час анімації тексту, що з'являється у діалоговому вікні.
Примітка: Встановлення цього параметра відповідно оновлює visible_ratio.
Примітка: Символи підраховуються як кодові точки Unicode. Один видимий графема може містити кілька кодових точок (наприклад, деякі емодзі використовують три кодові точки). Одна кодова точка може містити два символи UTF-16, які використовуються в рядках C#.
VisibleCharactersBehavior visible_characters_behavior = 0 🔗
void set_visible_characters_behavior(value: VisibleCharactersBehavior)
VisibleCharactersBehavior get_visible_characters_behavior()
Поведінка відсікання, коли встановлено visible_characters або 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 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, щоб визначити, чи документ повністю завантажено.
Повертає загальну кількість рядків у тексті. Перенесений текст вважається кількома рядками.
Примітка: Якщо ввімкнено 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 цього 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())
public override void _Ready()
{
var menu = GetMenu();
// Видалення елемента "Вибрати все".
menu.RemoveItem(RichTextLabel.MenuItems.SelectAll);
// Додати власні елементи.
menu.AddSeparator();
menu.AddItem("Duplicate Text", RichTextLabel.MenuItems.Max + 1);
// Додати обробник події.
menu.IdPressed += OnItemPressed;
}
public void OnItemPressed(int id)
{
if (id == TextEdit.MenuItems.Max + 1)
{
AddText("\n" + GetParsedText());
}
}
Попередження: Це обов’язковий внутрішній вузол, його видалення та звільнення може призвести до збою. Якщо ви бажаєте приховати його чи будь-який із його дочірніх елементів, скористайтеся властивістю 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
public partial class TestLabel : RichTextLabel
{
[Export]
public Panel BackgroundPanel { get; set; }
public override async void _Ready()
{
await ToSignal(this, Control.SignalName.Draw);
BackgroundGPanel.Position = GetVisibleContentRect().Position;
BackgroundPanel.Size = GetVisibleContentRect().Size;
}
}
int get_visible_line_count() const 🔗
Повертає кількість видимих рядків.
Примітка: Цей метод повертає правильне значення лише після того, як намальовано мітку.
Примітка: Якщо ввімкнено 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 та всіх наступних абзаців.
Якщо threaded включена, повертає true, якщо фонова нитка завершила обробку тексту, інакше завжди повертає true.
Повертаємо вашу увагу на те, що меню видно. Використовуйте це замість ``get_menu().видимі `` для поліпшення продуктивності (наприклад, створення меню уникнути).
Застаріло: Use is_finished() instead.
Якщо threaded включена, повертає true, якщо фонова нитка завершила обробку тексту, інакше завжди повертає true.
Виконує задану дію, як визначену в 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) 🔗
Колір за замовчуванням для непарних рядків.
Додатковий вертикальний інтервал між рядками (у пікселях), інтервал додається до рядкового спуску. Це значення може бути негативним.
Розмір контуру тексту.
Примітка. Якщо використовується шрифт із увімкненим FontFile.multichannel_signed_distance_field, для його FontFile.msdf_pixel_range має бути принаймні вдвічі значення outline_size щоб рендеринг контуру виглядав правильно. Інакше контур може здатися обрізаним раніше, ніж передбачалося.
int paragraph_separation = 0 🔗
Додатковий вертикальний інтервал між абзацами (у пікселях). Інтервал додається після останнього рядка. Це значення може бути від’ємним.
Горизонтальний зсув тіні шрифту.
Вертикальний зсув тіні шрифту.
Розмір контуру тіні.
int strikethrough_alpha = 50 🔗
Прозорість кольору закреслення за замовчуванням (у відсотках). Для закреслень із власним кольором цей елемент теми використовується лише за умови, що альфа-канал власного кольору дорівнює 0.0 (повністю прозорий).
Горизонтальне поділ елементів в таблиці.
Вертикальне відділення елементів в таблиці.
int text_highlight_h_padding = 3 🔗
Горизонтальні відступи навколо рамок, намальовані тегами [fgcolor] та [bgcolor]. Це не впливає на вигляд виділення тексту. Щоб уникнути ризику перекриття сусідніх виділень, встановіть для цього значення 0, щоб вимкнути відступи.
int text_highlight_v_padding = 3 🔗
Вертикальні відступи навколо рамок, намальованих тегами [fgcolor] та [bgcolor]. Це не впливає на вигляд виділення тексту. Щоб уникнути ризику перекриття сусідніх виділень, встановіть для цього значення 0, щоб вимкнути відступи.
Прозорість кольору підкреслення за замовчуванням (у відсотках). Для підкреслень з власним кольором цей елемент теми використовується лише тоді, коли альфа власного кольору дорівнює 0.0 (повністю прозорий).
Використовується для сміливого тексту.
Шрифт, що використовується для текстів ізоляцій.
Шрифт, який використовується для тексту italics.
Шрифт, що використовується для монокосмічного тексту.
Текст за замовчуванням.
Розмір шрифту, що використовується для сміливого тексту.
Розмір шрифту, що використовується для сміливих italics тексту.
Розмір шрифту, що використовується для тексту italics.
Розмір шрифту, що використовується для монокосмічного тексту.
Розмір шрифту за замовчуванням.
Текстура горизонтальної лінійки.
На фоні, що використовується при фокусі RichTextLabel. фокус StyleBox відображається over бази StyleBox, так що частково прозора StyleBox повинна бути використана для забезпечення бази StyleBox. Стильбокс, який добре працює для цього. Щоб вимкнути візуальний ефект фокусу, призначте ресурс StyleBoxEmpty. Зверніть увагу, що відключення візуального ефекту фокусу буде завдати шкоди клавіатурі / керованій навігації, тому це не рекомендується для причин доступності.
Нормальний фон для RichTextLabel.