Table Of Contents
Текст¶
Абстракция создания текста. В зависимости от выбранного бэкенда точность визуализации текста может варьироваться.
Изменено в версии 1.10.1: LabelBase.find_base_direction()
добавлен.
Изменено в версии 1.5.0: LabelBase.line_height
добавлен.
Изменено в версии 1.0.7: LabelBase
не создает текстуры, если ширина текста <= 1.
Это бэкенд для визуализации текста с использованием разных поставщиков текста; вы должны использовать его напрямую только в том случае, если ваши потребности не удовлетворяются Label
.
Пример использования:
from kivy.core.text import Label as CoreLabel
...
...
my_label = CoreLabel()
my_label.text = 'hello'
# обычно метка не рисуется до тех пор, пока это не потребуется, поэтому заставьте ее отрисовать.
my_label.refresh()
# Теперь получите текстуру метки и используйте ее где и как угодно.
hello_texture = my_label.texture
Менеджер контекста шрифта¶
Контекст шрифта - это пространство имен, в котором загружено несколько шрифтов; если шрифт не содержит глиф, необходимого для визуализации текста, он может переключиться на другой шрифт в том же контексте. Менеджер контекста шрифта можно использовать для запроса и управления состоянием контекстов шрифта при использовании поставщика текста Pango (на данный момент ни один другой поставщик не реализует это).
Новое в версии 1.11.0.
Предупреждение
Для этой функции требуется поставщик текста Pango.
Контексты шрифта могут создаваться автоматически kivy.uix.label.Label
или kivy.uix.textinput.TextInput
; если несуществующий контекст используется в одном из этих классов, он будет создан автоматически, или если указан файл шрифта без контекста (это создает изолированный контекст без поддержки отката).
Пример использования:
from kivy.uix.label import Label
from kivy.core.text import FontContextManager as FCM
# Создайте контекст шрифта, содержащий системные шрифты + один пользовательский TTF
FCM.create('system://myapp')
family = FCM.add_font('/путь/к/файлу.ttf')
# Теперь можно обращаться к пользовательскому шрифту следующими способами:
lbl1 = Label(font_context='system://myapp', family_name=family)
lbl2 = Label(font_context='system://myapp', font_name='/путь/к/файлу.ttf')
# Также можно обращаться к системному шрифту по семейству, так как это системный контекст шрифта
lbl3 = Label(font_context='system://myapp', family_name='Arial')
- class kivy.core.text.LabelBase(text='', font_size=12, font_name=None, bold=False, italic=False, underline=False, strikethrough=False, font_family=None, halign='left', valign='bottom', shorten=False, text_size=None, mipmap=False, color=None, line_height=1.0, strip=False, strip_reflow=True, shorten_from='center', split_str=' ', unicode_errors='replace', font_hinting='normal', font_kerning=True, font_blended=True, outline_width=None, outline_color=None, font_context=None, font_features=None, base_direction=None, text_language=None, **kwargs)[source]¶
Базовый класс:
builtins.object
Ядро текстовой метки. Это абстрактный класс, используемый различными архитектурами для отображения текста.
Предупреждение
Ядро текстовой метки нельзя изменить во время выполнения. Вы должны создать новую метку.
- Parameters
- font_size: int, по умолчанию 12
Размер шрифта текста
- font_context: str, по умолчанию None
Контекст для указанного шрифта (см.
kivy.uix.label.Label
для подробностей). None автоматически создаст изолированный контекст с именем, соответствующим разрешенному файлу шрифта.- font_name: str, по умолчанию DEFAULT_FONT
Название шрифта текста
- font_family: str, по умолчанию None
Имя семейства шрифтов, запрашиваемое для рисования, это можно использовать только с font_context.
- bold: bool, по умолчанию False
Активировать стиль текста "жирный"
- italic: bool, по умолчанию False
Активировать стиль текста "курсив"
- text_size: tuple, по умолчанию (None, None)
Добавьте ограничение для отображения текста (внутри ограничивающего прямоугольника). Если размер не указан, размер метки будет установлен равным размеру текста.
- padding: float, по умолчанию None
Если это число с плавающей запятой, оно установит padding_x и padding_y
- padding_x: float, по умолчанию 0.0
Отступ слева/справа
- padding_y: float, по умолчанию 0.0
Отступ сверху/снизу
- halign: str, по умолчанию "left"
Горизонтальное выравнивание текста внутри ограничивающего прямоугольника
- valign: str, по умолчанию "bottom"
Вертикальное выравнивание текста внутри ограничивающего прямоугольника
- shorten: bool, по умолчанию False
Указывает, должна ли метка попытаться как можно сильнее сократить свой текстовый содержимое, если указан размер. Установка этого параметра в True без соответствующего размера приведет к неожиданным результатам.
- shorten_from: str, по умолчанию "center"
Сторона, с которой следует сокращать текст, может быть слева, справа или по центру. Например, если слева, многоточие будет отображаться в сторону слева, и будет отображаться как можно больше текста, начиная с правой стороны, насколько это возможно.
- split_str: string, по умолчанию " "
Строка для разделения слов при сокращении. Если пусто, мы можем разделять после каждого символа, заполняя строку как можно больше.
- max_lines: int, по умолчанию 0 (неограничено)
Если установлено, это указывает, сколько максимальных строк разрешено отображать текст. Работает только при наличии ограничения на text_size.
- mipmap: bool, по умолчанию False
Создать mipmap для текстуры
- strip: bool, по умолчанию False
Удаляются ли начальные и конечные пробелы в каждой строке текста stripped. Если halign равно justify, это неявно истинно.
- strip_reflow: bool, по умолчанию True
Следует ли удалять текст, который был перенесен на вторую строку, даже если strip равно False. Это имеет значение только в том случае, когда size_hint_x не равен None, потому что в противном случае строки никогда не разбиваются.
- unicode_errors: str, по умолчанию "replace"
Как обрабатывать ошибки декодирования Unicode. Может быть "strict", "replace" или "ignore".
- outline_width: int, по умолчанию None
Ширина обводки в пикселях.
- outline_color: tuple, по умолчанию (0, 0, 0)
Цвет обводки.
- font_features: str, по умолчанию None
Шрифтовые особенности OpenType в формате CSS (только Pango)
- base_direction: str, по умолчанию None (автоматически)
Направление текста, одно из None, 'ltr', 'rtl', 'weak_ltr', или 'weak_rtl' (только Pаango)
- text_language: str, по умолчанию None (локаль пользователя)
Языковой тег формата RFC-3066 в виде строки (только Pango)
Изменения в версии 1.10.1: Были добавлены font_context, font_family, font_features, base_direction и text_language.
Изменения в версии 1.10.0: Добавлены outline_width и outline_color.
Изменения в версии 1.9.0: Добавлены strip, strip_reflow, shorten_from, split_str и unicode_errors.
Изменения в версии 1.9.0: padding_x и padding_y были исправлены и теперь работают как ожидалось. Ранее текст отступал на основе отрицательных значений этих параметров.
Изменения в версии 1.8.0: Добавлен параметр max_lines.
Изменения в версии 1.0.8: Параметр size был устаревшим и заменен на text_size.
Изменения в версии 1.0.7: Теперь параметр valign учитывается. Раньше это не было так, поэтому у вас может возникнуть проблема в вашем приложении, если вы это не учли.
- property content_height¶
Возвращает высоту содержимого; то есть высоту текста без любого отступа.
- property content_size¶
Возвращает размер содержимого (ширина, высота)
- property content_width¶
Возвращает ширину содержимого; то есть ширину текста без любого отступа.
- static find_base_direction(текст)[source]¶
Ищет в строке первый символ с сильным направлением, согласно алгоритму Unicode bidirectional. Возвращает None, если базовое направление не может быть определено, или одно из ‘ltr’ или ‘rtl’.
Примечание
Для этой функции требуется текстовый провайдер Pango.
- property fontid¶
Возвращает уникальный идентификатор для всех параметров шрифта
- get_cached_extents()[source]¶
Возвращает кэшированную версию функции
get_extents()
.>>> func = self._get_cached_extents() >>> func <built-in method size of pygame.font.Font object at 0x01E45650> >>> func('a line') (36, 18)
Предупреждение
Этот метод возвращает функцию измерения размера, которая действительна для настроек шрифта, использованных в момент вызова
get_cached_extents()
. Любое изменение настроек шрифта сделает возвращенную функцию неверной. Используйте это только если вы знаете, что делаете.Новое в версии 1.9.0.
- get_extents(текст)[source]¶
Возвращает кортеж (ширина, высота), указывающий размер указанного текста
- property label¶
Получить/Установить текст
- static register(name, fn_regular, fn_italic=None, fn_bold=None, fn_bolditalic=None)[source]¶
Регистрирует псевдоним для шрифта.
Новое в версии 1.1.0.
Если вы используете ttf-шрифт напрямую, вы можете не иметь возможности использовать жирный/курсивный текст из версии ttf. Если шрифт поставляется в нескольких файлах (обычный, курсив и жирный), то вам нужно зарегистрировать эти файлы и использовать псевдоним вместо них.
Все параметры fn_regular/fn_italic/fn_bold разрешаются с помощью
kivy.resources.resource_find()
. Если fn_italic/fn_bold равны None, то будет использоваться fn_regular.
- render(real=False)[source]¶
Возвращает кортеж (ширина, высота) для создания изображения с учетом пользовательских ограничений. (ширина, высота) включает отступы.
- shorten(text, margin=2)[source]¶
Сокращает текст, чтобы он влез в одну строку по указанной ширине
text_size
[0]. Еслиtext_size
[0] равен None, возвращает неизмененный текст.split_str
иshorten_from
определяют, как текст сокращается.- Parameters
text str, текст для сокращения. margin int, количество пространства между полями и текстом. Это дополнительно к
padding_x
.- Returns
текст, сокращенный до размера, чтобы влезть в одну строку.
- property text¶
Получить/Установить текст
- property text_size¶
Получить/установить (ширина, высота) 'ограничивающей коробки'.
- property usersize¶
(устаревшее) Используйте text_size вместо.