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