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, который содержит слова для строки.