Версия 2.1.0

Quick search

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]

Возвращает кортеж (ширина, высота), указывающий размер указанного текста

static get_system_fonts_dir()[source]

Возвращает директории, используемые системой для шрифтов.

property label

Получить/Установить текст

refresh()[source]

Принудительное повторное рендеринг текста

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 вместо.