Версия 2.1.0

Quick search

Table Of Contents

Разметка текста

Добавлено в версии 1.1.0.

Изменено в версии 1.10.1: Добавлены font_context, font_features и text_language (только Pango)

Мы предоставляем простую разметку текста для стилизации встроенного текста. Синтаксис схож с BBCode.

Тег определяется как [тег] и должен иметь соответствующий закрывающий тег [/тег]. Например:

[b]Привет [color=ff0000]мир[/color][/b]

Доступны следующие теги:

[b][/b]

Активировать жирный текст

[i][/i]

Активировать курсивный текст

[u][/u]

Подчеркнутый текст

[s][/s]

Зачеркнутый текст

[font=<str>][/font]

Изменить шрифт (примечание: это относится к файлу TTF или зарегистрированному псевдониму)

[font_context=<str>][/font_context]

Изменить контекст для шрифта, используйте строковое значение "none" для изолированного контекста.

[font_family=<str>][/font_family]

Семейство шрифтов для запроса при отображении. Это действительно только при использовании контекста шрифта и имеет приоритет перед [font]. См. kivy.uix.label.Label для подробностей.

[font_features=<str>][/font_features]

Особенности шрифта OpenType в формате CSS, они передаются напрямую в Pango. Эффекты от запроса функции зависят от загруженных шрифтов, версий библиотек и т. д. Только Pango, требуется версия 1.38 или более поздняя.

[size=<size>][/size]

Изменить размер шрифта. <size> должен быть целым числом, при необходимости с единицей измерения (например, 16sp)

[color=#<color>][/color]

Изменить цвет текста

[ref=<str>][/ref]

Добавить интерактивную зону. Ссылка + весь текст внутри ссылки будут доступны в MarkupLabel.refs

[anchor=<str>]

Установить якорь в тексте. Вы можете получить позицию вашего якоря в тексте с помощью MarkupLabel.anchors

[sub][/sub]

Отобразить текст в нижнем индексе относительно текста перед ним.

[sup][/sup]

Отобразить текст в верхнем индексе относительно текста перед ним.

[text_language=<str>][/text_language]

Язык текста, это RFC-3066 формат языковой метки (в виде строки), например "en_US", "zh_CN", "fr" или "ja". Это может повлиять на выбор шрифта, метрики и отображение. Например, одни и те же байты текста могут выглядеть по-разному для языков ur и ar, хотя оба используют арабский алфавит. Используйте строку 'none' для возврата к определению локали. Только Pango.

Если вам нужно экранировать разметку в текущем тексте, используйте kivy.utils.escape_markup().

class kivy.core.text.markup.MarkupLabel(*largs, **kwargs)[source]

Базовый класс: kivy.core.text.LabelBase

Метка разметки текста.

См. документацию модуля для получения дополнительной информации.

property anchors

Получить позицию всех [anchor=...]:

{ 'anchorA': (x, y), 'anchorB': (x, y), ... }
property markup

Вернуть текст со всей разметкой:

>>> MarkupLabel('[b]Привет мир[/b]').markup
>>> ('[b]', 'Привет мир', '[/b]')
property refs

Получить ограничивающий прямоугольник всех [ref=...]:

{ 'refA': ((x1, y1, x2, y2), (x1, y1, x2, y2)), ... }
render(real=False)[source]

Вернуть кортеж (ширина, высота) для создания изображения с учетом ограничений пользователя. (ширина, высота) включает отступы.

shorten_post(lines, w, h, margin=2)[source]

Укорачивает текст до одной строки в соответствии с параметрами метки.

Эта функция работает с текстом, который уже был размещен, потому что для разметки части текста могут иметь разный размер и опции.

Если text_size [0] равно None, строки возвращаются без изменений. В противном случае строки преобразуются в одну строку, помещающуюся в ограниченную ширину text_size [0].

Parameters

lines: список экземпляров LayoutLine, описывающих текст. w: int, ширина текста в строках, включая отступы. h: int, высота текста в строках, включая отступы. margin int, дополнительное пространство слева и справа. Это в дополнение к padding_x.

Returns

3-кортеж (xw, h, lines), где w и h аналогичны входным данным и содержат итоговую ширину / высоту текста, включая отступы. lines - это список, содержащий одну LayoutLine, который содержит слова для строки.