好的,请发送需要翻译的英文内容。

文本创建的抽象。根据所选后端的不同,文本渲染的精确度可能会有所差异。

在 1.10.1 版本发生变更: 新增了 LabelBase.find_base_direction() 方法。

在 1.5.0 版本发生变更: 新增了 LabelBase.line_height 属性。

在 1.0.7 版本发生变更: :如果文本的宽度小于等于1,LabelBase 不会生成任何纹理。

这是用于通过不同文本提供程序渲染文本的后端层,只有当 Label 无法满足你的需求时,才应直接使用此层。

使用示例:

from kivy.core.text import Label as CoreLabel

...
...
my_label = CoreLabel()
my_label.text = 'hello'
# the label is usually not drawn until needed, so force it to draw.
my_label.refresh()
# Now access the texture of the label and use it wherever and
# however you may please.
hello_texture = my_label.texture

字体上下文管理器

字体上下文是一个命名空间,其中加载了多个字体;如果某个字体缺少渲染文本所需的字形,它可以回退到同一上下文中的另一个字体。在使用Pango文本提供程序时(目前没有其他提供程序实现此功能),字体上下文管理器可用于查询和操作字体上下文的状态。

在 1.11.0 版本加入.

警告

此功能需要Pango文本提供程序。

字体上下文可以由 kivy.uix.label.Labelkivy.uix.textinput.TextInput 自动创建;如果在这两个类中使用了不存在的上下文,它将被自动创建,或者如果指定了字体文件而没有上下文(这会创建一个独立的上下文,不支持回退)。

使用示例:

from kivy.uix.label import Label
from kivy.core.text import FontContextManager as FCM

# Create a font context containing system fonts + one custom TTF
FCM.create('system://myapp')
family = FCM.add_font('/path/to/file.ttf')

# These are now interchangeable ways to refer to the custom font:
lbl1 = Label(font_context='system://myapp', family_name=family)
lbl2 = Label(font_context='system://myapp', font_name='/path/to/file.ttf')

# You could also refer to a system font by family, since this is a
# system:// font context
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, font_direction='ltr', font_script_name='Latin', text_language=None, limit_render_to_text_bbox=False, **kwargs)[源代码]

基类:object

核心文本标签。这是不同后端用于渲染文本的抽象类。

警告

核心文本标签无法在运行时更改。您必须重新创建一个。

参数:
font_size:整数,默认值为12

文本的字体大小

font_context:字符串,默认为 None

指定字体的上下文(详见 kivy.uix.label.Label)。None 将自动创建一个以解析后的字体文件命名的独立上下文。

font_name:字符串,默认值为 DEFAULT_FONT

文本的字体名称。

font_family:字符串,默认为 None

用于绘制请求的字体族名称,此选项仅可与 font_context 结合使用。

bold:布尔值,默认为 False

激活“粗体”文本样式

italic:布尔值,默认为 False

激活“斜体”文本样式

text_size:元组,默认为 (None, None)

添加约束以在边界框内渲染文本。若未指定尺寸,标签尺寸将自动设置为文本尺寸。

padding:int|float 或 list|tuple,默认为 [0, 0, 0, 0]。

文本的填充格式为 [padding_left, padding_top, padding_right, padding_bottom]。padding 应为 int|float 或包含 1、2 或 4 个元素的列表|元组。

padding_x:浮点数,默认值为 0.0

左右内边距

padding_y:浮点数,默认值为 0.0

顶部/底部内边距

halign:字符串类型,默认值为"left"

在边界框内的水平文本对齐

valign:字符串类型,默认值为 "bottom"

边界框内的垂直文本对齐

shorten:布尔值,默认为 False

指示在给定`size`的情况下,标签是否应尽可能缩短其文本内容。将此设为True而未适当设置尺寸将导致意外结果。

shorten_from:字符串,默认值为 center

我们应从哪一侧缩短文本,可以是左侧、右侧或中心。例如,如果选择左侧,省略号将出现在左侧,并尽可能多地显示从右侧开始的文本。

split_str:字符串,默认为 `' '`(空格)

用于缩短文本时按此字符串分割单词。若为空,则可在每个字符后分割,尽可能填满每一行。

max_lines:整数,默认值为 0(无限制)

如果设置,这表示允许渲染文本的最大行数。仅在设置了text_size限制时生效。

mipmap:布尔值,默认为 False

为纹理创建mipmap。

strip:布尔值,默认为 False

每行文本的前导和尾随空格是否被去除。如果 halign 设置为 justify,则此属性隐式为 True。

strip_reflow: 布尔值,默认为 True

当文本被重排到第二行时,是否应去除空白,即使 strip 为 False。此设置仅在 size_hint_x 不为 None 时生效,因为否则文本行永远不会被拆分。

unicode_errors:字符串类型,默认值为 'replace'

如何处理Unicode解码错误。可以是`'strict''replace''ignore'`

outline_width:整数,默认为 None

轮廓的宽度(以像素为单位)。

outline_color:元组,默认值为 (0, 0, 0)

轮廓的颜色。

font_features: str,默认为 None

OpenType 字体特性(CSS 格式,仅限 Pango)

base_direction:字符串类型,默认为 None(自动)

文本方向,取值为 None'ltr''rtl''weak_ltr'`'weak_rtl'`(仅限 Pango)

text_language:字符串类型,默认为None(用户区域设置)

RFC-3066 格式的语言标签字符串(仅限 Pango)

limit_render_to_text_bbox:布尔值,默认为 False。仅适用于 PIL。

如果设置为 True,此参数表示渲染应限制在文本的边界框内,不包括为上升和下降预留的任何额外空白。通过将渲染限制在文本的边界框内,可以确保在使用 valignypospos_hint 等属性时,与周围元素的对齐更加精确。

在 2.3.0 版本加入: limit_render_to_text_bbox 被添加用于将文本渲染限制在文本边界框内(仅限 PIL)。

自 2.2.0 版本弃用: padding_xpadding_y 已被弃用。请改用 padding

在 2.2.0 版本发生变更: padding 现在是一个列表,默认值为 [0, 0, 0, 0]。padding 接受 int|float 或包含 1、2 或 4 个元素的列表|元组。

在 1.10.1 版本发生变更: font_contextfont_familyfont_featuresbase_directiontext_language 已被添加。

在 1.10.0 版本发生变更: outline_widthoutline_color 已被添加。

在 1.9.0 版本发生变更: 新增了 stripstrip_reflowshorten_fromsplit_strunicode_errors 属性。

在 1.9.0 版本发生变更: padding_xpadding_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(text)[源代码]

根据Unicode双向算法,在字符串中搜索第一个具有强方向性的字符。如果无法确定基本方向,则返回`None`,否则返回`'ltr''rtl'`之一。

备注

此功能需要Pango文本提供程序。

property fontid

返回所有字体参数的唯一ID。

get_cached_extents()[源代码]

返回 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(text)[源代码]

返回一个元组 (width, height),表示指定文本的大小。

static get_system_fonts_dir()[源代码]

返回系统用于字体的目录。

property label

获取/设置文本。

refresh()[源代码]

强制重新渲染文本。

static register(name, fn_regular, fn_italic=None, fn_bold=None, fn_bolditalic=None)[源代码]

为字体注册一个别名。

在 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)[源代码]

返回一个元组 (width, height),用于根据用户约束创建图像。该元组包含内边距。

shorten(text, margin=2)[源代码]

通过 text_size [0] 指定的宽度将文本缩短为单行。如果 text_size [0] 为 None,则返回未更改的文本。

split_strshorten_from 决定了文本如何被缩短。

参数:

text str,需要缩短的文本。margin int,在边距与文本之间保留的空间量。这是在 padding_x 之外额外添加的。

返回:

文本已缩短为单行以适应显示。

property text

获取/设置文本。

property text_size

获取/设置“约束渲染框”的(宽度,高度)。

property usersize

(已弃用)请改用 text_size。